Tarih aralığına göre SQL sorgu oluşturma hk.

Katılım
29 Ocak 2024
Mesajlar
97
Excel Vers. ve Dili
Office 2016
Değerli Hocalarım merhaba,

Veri tabanında; bir görev için Baslama_Tarih ve Bitis_Tarih alanları mevcut ve burada tarihler yazılı;

yapmaya çalıştığım, Baslama_Tarih - Bitis_Tarih aralığı (görev süresi) Ekim ayı (10. ay) içinde herhangi bir güne denk geliyorsa; aşağıda bu tarihleri çekecek çekecek bir sql sorgusuna ihtiyacım bulunmakta; aşağıda kırmızı boyalı tarihler
Aşağıdaki kodu oluşturdum ama; bitiş tarihi bir sonraki aya taşanları almıyor.

Kod:
start_date="10/1/2024"
end_date="31/1/2024"

       SQL = "SELECT * FROM tbl_Tasks "

        SQL = SQL & "WHERE baslama_tarihi >= #" & (start_date) & "#"
        
        SQL = SQL & " AND bitis_tarihi <= #" & (end_date) & "#"
Burada kırmızı olan görevler:

Görev-1: 11.10.2024 - 20.10.2024
Görev-2: 15.10.2024 - 10.11.2024
Görev-3: 18.10.2024 - 29.10.2024
Görev-4: 19.10.2024 - 27.10.2024
Görev-5: 28.10.2024 - 16.11.2024

Görev-6: 13.11.2024 - 26.11.2024
Görev-7: 05.11.2024 - 21.11.2024



yardımcı olursanız sevinirim.
iyi Çalışmalar.
 

tugkan

Altın Üye
Katılım
6 Kasım 2004
Mesajlar
306
Excel Vers. ve Dili
Excel 2016
Türkçe 64 BIT
Altın Üyelik Bitiş Tarihi
16-10-2025
Merhaba! Ekim ayı içerisinde başlayan veya biten görevleri çekmek için SQL sorgunuzu biraz değiştirmeniz gerekecek. Aşağıda, Ekim ayında en az bir gün boyunca süren görevleri almak için gereken SQL sorgusunu bulabilirsiniz. Bu sorgu, başlangıç tarihi Ekim ayı içinde olan görevleri ve bitiş tarihi Ekim ayı içinde veya sonrasında olan görevleri dikkate alacaktır.

Güncellenmiş SQL Sorgusu

Kod:
start_date = "10/1/2024"
end_date = "10/31/2024"

SQL = "SELECT * FROM tbl_Tasks "
SQL = SQL & "WHERE (baslama_tarihi BETWEEN #" & (start_date) & "# AND #" & (end_date) & "#) "
SQL = SQL & "OR (bitis_tarihi BETWEEN #" & (start_date) & "# AND #" & (end_date) & "#) "
SQL = SQL & "OR (baslama_tarihi < #" & (start_date) & "# AND bitis_tarihi > #" & (end_date) & "#)"
Açıklamalar:
  1. Başlama Tarihi Ekim Ayında Olan Görevler:
    • baslama_tarihi BETWEEN #10/1/2024# AND #10/31/2024# bu kısım, Ekim ayının içinde başlayan görevleri alır.
  2. Bitiş Tarihi Ekim Ayında Olan Görevler:
    • bitis_tarihi BETWEEN #10/1/2024# AND #10/31/2024# bu kısım, Ekim ayının içinde biten görevleri alır.
  3. Ekim Ayı Dışında Başlayıp Ekim Ayında Sona Eren Görevler:
    • baslama_tarihi < #10/1/2024# AND bitis_tarihi > #10/31/2024# bu kısım, Ekim ayının dışından başlayıp Ekim ayı içinde en az bir gün süren görevleri alır.
Bu sorgu, Ekim ayında veya onun etrafında olan görevleri almanızı sağlayacaktır. Umarım bu yardımcı olur!
 
Katılım
11 Temmuz 2024
Mesajlar
74
Excel Vers. ve Dili
Excel 2021 Türkçe
Bu şekilde deneyip sonucu paylaşabilir misiniz;


Kod:
start_date = "2024-10-01" 
end_date = "2024-10-31" 

SQL = "SELECT * FROM tbl_Tasks "
SQL = SQL & "WHERE baslama_tarihi <= #" & (end_date) & "#"
SQL = SQL & " AND bitis_tarihi >= #" & (start_date) & "#"
Veritabanında gg/aa/yyyy şeklinde ise şöyle de deneyebilirsiniz;


Kod:
start_date = "01/10/2024"
end_date = "31/10/2024"

SQL = "SELECT * FROM tbl_Tasks "
SQL = SQL & "WHERE baslama_tarihi <= #" & (end_date) & "#"
SQL = SQL & " AND bitis_tarihi >= #" & (start_date) & "#"
 

Erdem Akdemir

Destek Ekibi
Destek Ekibi
Katılım
4 Mayıs 2007
Mesajlar
3,629
Excel Vers. ve Dili
2016 PRO TÜRKÇE-İNG. 64 BİT
Merhaba,

Eğer sadece ay bazlı sonuç almak isteniyorsa aşağıdaki sorgu tarzı kullanılabilir.

Kod:
tarih = 102024

Sql = "select * from[sayfa1$] "
Sql = Sql & "where month(baslama_tarihi) & year(baslama_tarihi) = " & tarih & " "
Sql = Sql & "and month(bitis_tarihi) & year(bitis_tarihi) = " & tarih & " "
 
Katılım
29 Ocak 2024
Mesajlar
97
Excel Vers. ve Dili
Office 2016
Merhaba! Ekim ayı içerisinde başlayan veya biten görevleri çekmek için SQL sorgunuzu biraz değiştirmeniz gerekecek. Aşağıda, Ekim ayında en az bir gün boyunca süren görevleri almak için gereken SQL sorgusunu bulabilirsiniz. Bu sorgu, başlangıç tarihi Ekim ayı içinde olan görevleri ve bitiş tarihi Ekim ayı içinde veya sonrasında olan görevleri dikkate alacaktır.

Güncellenmiş SQL Sorgusu

Kod:
start_date = "10/1/2024"
end_date = "10/31/2024"

SQL = "SELECT * FROM tbl_Tasks "
SQL = SQL & "WHERE (baslama_tarihi BETWEEN #" & (start_date) & "# AND #" & (end_date) & "#) "
SQL = SQL & "OR (bitis_tarihi BETWEEN #" & (start_date) & "# AND #" & (end_date) & "#) "
SQL = SQL & "OR (baslama_tarihi < #" & (start_date) & "# AND bitis_tarihi > #" & (end_date) & "#)"
Açıklamalar:
  1. Başlama Tarihi Ekim Ayında Olan Görevler:
    • baslama_tarihi BETWEEN #10/1/2024# AND #10/31/2024# bu kısım, Ekim ayının içinde başlayan görevleri alır.
  2. Bitiş Tarihi Ekim Ayında Olan Görevler:
    • bitis_tarihi BETWEEN #10/1/2024# AND #10/31/2024# bu kısım, Ekim ayının içinde biten görevleri alır.
  3. Ekim Ayı Dışında Başlayıp Ekim Ayında Sona Eren Görevler:
    • baslama_tarihi < #10/1/2024# AND bitis_tarihi > #10/31/2024# bu kısım, Ekim ayının dışından başlayıp Ekim ayı içinde en az bir gün süren görevleri alır.
Bu sorgu, Ekim ayında veya onun etrafında olan görevleri almanızı sağlayacaktır. Umarım bu yardımcı olur!
Hocam ilginize teşekkürler,
Bu sorguda Ekim ayında başlayıp Kasım ayında bitenler gelmedi.
 
Katılım
29 Ocak 2024
Mesajlar
97
Excel Vers. ve Dili
Office 2016
Merhaba,

Eğer sadece ay bazlı sonuç almak isteniyorsa aşağıdaki sorgu tarzı kullanılabilir.

Kod:
tarih = 102024

Sql = "select * from[sayfa1$] "
Sql = Sql & "where month(baslama_tarihi) & year(baslama_tarihi) = " & tarih & " "
Sql = Sql & "and month(bitis_tarihi) & year(bitis_tarihi) = " & tarih & " "
Erdem Hocam ilginize teşekkürler,
şöyleki bu sorguda Ekim ayında başlayıp Kasım ayına da devam eden işler gelmiyor.

iyi çalışmalar.
 
Katılım
29 Ocak 2024
Mesajlar
97
Excel Vers. ve Dili
Office 2016
Bu şekilde deneyip sonucu paylaşabilir misiniz;


Kod:
start_date = "2024-10-01"
end_date = "2024-10-31"

SQL = "SELECT * FROM tbl_Tasks "
SQL = SQL & "WHERE baslama_tarihi <= #" & (end_date) & "#"
SQL = SQL & " AND bitis_tarihi >= #" & (start_date) & "#"
Veritabanında gg/aa/yyyy şeklinde ise şöyle de deneyebilirsiniz;


Kod:
start_date = "01/10/2024"
end_date = "31/10/2024"

SQL = "SELECT * FROM tbl_Tasks "
SQL = SQL & "WHERE baslama_tarihi <= #" & (end_date) & "#"
SQL = SQL & " AND bitis_tarihi >= #" & (start_date) & "#"
Sonuç aynı Hocam Ekim ayında başlayıp Kasım ayına devam eden görevler gelmiyor

teşekkürler,
 

Erdem Akdemir

Destek Ekibi
Destek Ekibi
Katılım
4 Mayıs 2007
Mesajlar
3,629
Excel Vers. ve Dili
2016 PRO TÜRKÇE-İNG. 64 BİT
Sorun cevaplarda değil, soruyu yanlış sordunuz. Bitiş tarihinin hiçbir önemi yok ama sorunuzda olduğunu belirtmişsiniz.
 
Katılım
29 Ocak 2024
Mesajlar
97
Excel Vers. ve Dili
Office 2016
Merhaba! Ekim ayı içerisinde başlayan veya biten görevleri çekmek için SQL sorgunuzu biraz değiştirmeniz gerekecek. Aşağıda, Ekim ayında en az bir gün boyunca süren görevleri almak için gereken SQL sorgusunu bulabilirsiniz. Bu sorgu, başlangıç tarihi Ekim ayı içinde olan görevleri ve bitiş tarihi Ekim ayı içinde veya sonrasında olan görevleri dikkate alacaktır.

Güncellenmiş SQL Sorgusu

Kod:
start_date = "10/1/2024"
end_date = "10/31/2024"

SQL = "SELECT * FROM tbl_Tasks "
SQL = SQL & "WHERE (baslama_tarihi BETWEEN #" & (start_date) & "# AND #" & (end_date) & "#) "
SQL = SQL & "OR (bitis_tarihi BETWEEN #" & (start_date) & "# AND #" & (end_date) & "#) "
SQL = SQL & "OR (baslama_tarihi < #" & (start_date) & "# AND bitis_tarihi > #" & (end_date) & "#)"
Açıklamalar:
  1. Başlama Tarihi Ekim Ayında Olan Görevler:
    • baslama_tarihi BETWEEN #10/1/2024# AND #10/31/2024# bu kısım, Ekim ayının içinde başlayan görevleri alır.
  2. Bitiş Tarihi Ekim Ayında Olan Görevler:
    • bitis_tarihi BETWEEN #10/1/2024# AND #10/31/2024# bu kısım, Ekim ayının içinde biten görevleri alır.
  3. Ekim Ayı Dışında Başlayıp Ekim Ayında Sona Eren Görevler:
    • baslama_tarihi < #10/1/2024# AND bitis_tarihi > #10/31/2024# bu kısım, Ekim ayının dışından başlayıp Ekim ayı içinde en az bir gün süren görevleri alır.
Bu sorgu, Ekim ayında veya onun etrafında olan görevleri almanızı sağlayacaktır. Umarım bu yardımcı olur!
teşekkürler Hocam
Bu şekilde deneyip sonucu paylaşabilir misiniz;


Kod:
start_date = "2024-10-01"
end_date = "2024-10-31"

SQL = "SELECT * FROM tbl_Tasks "
SQL = SQL & "WHERE baslama_tarihi <= #" & (end_date) & "#"
SQL = SQL & " AND bitis_tarihi >= #" & (start_date) & "#"
Veritabanında gg/aa/yyyy şeklinde ise şöyle de deneyebilirsiniz;


Kod:
start_date = "01/10/2024"
end_date = "31/10/2024"

SQL = "SELECT * FROM tbl_Tasks "
SQL = SQL & "WHERE baslama_tarihi <= #" & (end_date) & "#"
SQL = SQL & " AND bitis_tarihi >= #" & (start_date) & "#"
Hocam teşekkürler,
şimdi oldu, yalnış bakmışım.
teşekkürler,
 
Katılım
29 Ocak 2024
Mesajlar
97
Excel Vers. ve Dili
Office 2016
Sorun cevaplarda değil, soruyu yanlış sordunuz. Bitiş tarihinin hiçbir önemi yok ama sorunuzda olduğunu belirtmişsiniz.
Erdem Hocam Bitiş tarihinin önemi var, ekim ayından önce bitmişse ; yani eylül de başlayıp eylül de de bitebilir, ekim ayına da devam edebilir.
teşekkürler,
 
Üst