sorgulama ile ilgili yardıma ihtiyacım var.

poetika

Altın Üye
Katılım
6 Kasım 2005
Mesajlar
127
Excel Vers. ve Dili
Excel 2010 Türkçe
Altın Üyelik Bitiş Tarihi
30-09-2027
merhaba.
ekte sunduğum taksitlendirme dosyasına bir sorgu eklemek istiyorum. kişi bilgilerinin altındaki taksitlendirme tablosunda "taksit tarihi" borcun son ödeme tarihini belirtmektedir. üst üste iki taksidini ödemeyenleri nasıl sorgulayabilirim. örneğin kişiye üç taksit yaptım. vadeleri 01.02.2008, 01.03.2008 ve 01.04.2008. kişi 01.02.2008 ve 01.03.2008 tarihindeki taksitlerini arka arkaya ödemediği takdirde bunu bir sorguyla nasıl öğrenebilirim? yani kısaca: üstüste iki taksidini ödemeyenler sorgusu. şimdiden çok teşekkürler. iyi çalışmalar.
 

beab05

Özel Üye
Katılım
19 Mart 2007
Mesajlar
1,418
Excel Vers. ve Dili
Office 2013
Merhaba;
Doğru mu kurguladım tam emin değilim ama bir kontrol eder misiniz?? Yeni bir sorgu yapın ve SQL görünümünde açıp aşağıdaki sql kodu yapıştırın. Sorgu sonucundaki "Durumu" alanına dikkat ediniz.



SELECT ki&#351;iler.s&#305;rano, (select Count(odemetarihi) from taksitler where s&#305;rano=s&#305;rano) AS sayodmtarih, (select Count(odenentarih) from taksitler where s&#305;rano=s&#305;rano) AS sayodntarih, ki&#351;iler.adsoyad, taksitler.taksitsay&#305;s&#305;, taksitler.odememiktari, taksitler.odemetarihi, taksitler.odenentarih, taksitler.odenen, IIf((select max(odemetarihi) from taksitler where s&#305;rano=s&#305;rano)<Date() And [sayodmtarih]-[sayodntarih] >1 And IsNull([odenentarih]),"1 den fazla taksit atlam&#305;&#351;","odenmis") AS Durumu
FROM ki&#351;iler INNER JOIN taksitler ON ki&#351;iler.s&#305;rano = taksitler.s&#305;rano
GROUP BY ki&#351;iler.s&#305;rano, ki&#351;iler.adsoyad, taksitler.taksitsay&#305;s&#305;, taksitler.odememiktari, taksitler.odemetarihi, taksitler.odenentarih, taksitler.odenen;
 

assenucler

Altın Üye
Katılım
19 Ağustos 2004
Mesajlar
3,552
Excel Vers. ve Dili
Ofis 365 TR 64 Windows 11 Home Single Language x64 TR
Altın Üyelik Bitiş Tarihi
29-05-2025
Hocam, süpersin. Teşekkürler.

Selam ve sevgiler.
 

poetika

Altın Üye
Katılım
6 Kasım 2005
Mesajlar
127
Excel Vers. ve Dili
Excel 2010 Türkçe
Altın Üyelik Bitiş Tarihi
30-09-2027
Merhaba;
Doğru mu kurguladım tam emin değilim ama bir kontrol eder misiniz?? Yeni bir sorgu yapın ve SQL görünümünde açıp aşağıdaki sql kodu yapıştırın. Sorgu sonucundaki "Durumu" alanına dikkat ediniz.



SELECT kişiler.sırano, (select Count(odemetarihi) from taksitler where sırano=sırano) AS sayodmtarih, (select Count(odenentarih) from taksitler where sırano=sırano) AS sayodntarih, kişiler.adsoyad, taksitler.taksitsayısı, taksitler.odememiktari, taksitler.odemetarihi, taksitler.odenentarih, taksitler.odenen, IIf((select max(odemetarihi) from taksitler where sırano=sırano)<Date() And [sayodmtarih]-[sayodntarih] >1 And IsNull([odenentarih]),"1 den fazla taksit atlamış","odenmis") AS Durumu
FROM kişiler INNER JOIN taksitler ON kişiler.sırano = taksitler.sırano
GROUP BY kişiler.sırano, kişiler.adsoyad, taksitler.taksitsayısı, taksitler.odememiktari, taksitler.odemetarihi, taksitler.odenentarih, taksitler.odenen;
merhaba sayın beab,
emeğiniz için çok teşekkürler. kodu bütün kayıtlarımın olduğu projede uyguladım. hepsini ödenmiş olarak gösteriyor. gerçek kişi kayıtları olduğu için dosyayı gönderemiyorum. bir adet screenshot yolluyorum. tekrar teşekkürler.
 

poetika

Altın Üye
Katılım
6 Kasım 2005
Mesajlar
127
Excel Vers. ve Dili
Excel 2010 Türkçe
Altın Üyelik Bitiş Tarihi
30-09-2027
görüntüyü yollamamışım sanırım. özür dilerim ekte yolluyorum.
 

assenucler

Altın Üye
Katılım
19 Ağustos 2004
Mesajlar
3,552
Excel Vers. ve Dili
Ofis 365 TR 64 Windows 11 Home Single Language x64 TR
Altın Üyelik Bitiş Tarihi
29-05-2025
Sn. poetika;

Merhaba.. Eklediğiniz dosyada ben de aynı işlemleri yaptım. Ödenmeyen taksitlerin her birini ayrı satırda gösteriyor.

Dosyanızdaki kişi sayısı fazla değilse, soyad kısımlarını kopya yarattığın bir dosyada silerek, yollarsan, mutlaka sonuç alırsınız. Ancak, sayın beab05 SQL'de bir numara... Sorununu çözer...

Kolay gelsin.
 

beab05

Özel Üye
Katılım
19 Mart 2007
Mesajlar
1,418
Excel Vers. ve Dili
Office 2013
Merhaba;

Belki "IIF" &#351;artlar&#305;nda kurgu hatas&#305; yapm&#305;&#351; ta olabilirim ama burda verdi&#287;iniz &#246;rne&#287;e g&#246;re do&#287;ru sonu&#231; al&#305;n&#305;yordu. Dolay&#305;s&#305;yla Say&#305;n Assenucler'in dedi&#287;i gibi farkl&#305; ki&#351;ilerin kay&#305;tlar&#305;yla biraz daha fazla kay&#305;t i&#231;eren bir &#246;rnek yollarsan&#305;z konuyu tekrar de&#287;erlendirebiliriz..
 

poetika

Altın Üye
Katılım
6 Kasım 2005
Mesajlar
127
Excel Vers. ve Dili
Excel 2010 Türkçe
Altın Üyelik Bitiş Tarihi
30-09-2027
tekrar merhaba. kaydettiğim tüm şahısların kişi bilgilerini sildim. sadece ad ve soyadları kaldı. dosyayı böylece tekrar yolluyorum. yardımlarınız için tekrar teşekkür ediyorum. saygılar.
 

beab05

Özel Üye
Katılım
19 Mart 2007
Mesajlar
1,418
Excel Vers. ve Dili
Office 2013
Merhaba;

"IIF" de&#287;il "where" &#351;art&#305;nda hata yapm&#305;&#351;&#305;m "s&#305;rano" alan&#305;n&#305;n e&#351;itli&#287;ini di&#287;er tabloyla yapmak yerine yine kendisiyle yapm&#305;&#351;&#305;m. Alttaki gibi de&#287;i&#351;tirin l&#252;tfen ve kontrol ediniz.. Hala eksiklik olabilir ve e&#287;er varsa &#246;rnek sat&#305;r&#305;yla, s&#305;ra nosuyla, &#351;art&#305;yla bildiriniz..

SELECT ki&#351;iler.s&#305;rano, (select Count(odemetarihi) from taksitler where s&#305;rano=ki&#351;iler.s&#305;rano) AS sayodmtarih, (select Count(odenentarih) from taksitler where s&#305;rano=ki&#351;iler.s&#305;rano) AS sayodntarih, ki&#351;iler.adsoyad, taksitler.taksitsay&#305;s&#305;, taksitler.odememiktari, taksitler.odemetarihi, taksitler.odenentarih, taksitler.odenen, IIf((select max(odemetarihi) from taksitler where s&#305;rano=ki&#351;iler.s&#305;rano)<Date() And [sayodmtarih]-[sayodntarih] >1 And IsNull([odenentarih]),"1 den fazla taksit atlam&#305;&#351;","odenmis") AS Durumu
FROM ki&#351;iler INNER JOIN taksitler ON ki&#351;iler.s&#305;rano = taksitler.s&#305;rano
GROUP BY ki&#351;iler.s&#305;rano, ki&#351;iler.adsoyad, taksitler.taksitsay&#305;s&#305;, taksitler.odememiktari, taksitler.odemetarihi, taksitler.odenentarih, taksitler.odenen;
 

beab05

Özel Üye
Katılım
19 Mart 2007
Mesajlar
1,418
Excel Vers. ve Dili
Office 2013
Vadesi gelmemi&#351; olanlar "&#246;denmi&#351;" olarak g&#246;r&#252;n&#252;yordu ve bunun i&#231;in d&#252;zeltme yapt&#305;m..Bir de &#246;rne&#287;in "Ali Bekte&#351;" ta hata m&#305; var??



SELECT ki&#351;iler.s&#305;rano, (select Count(odemetarihi) from taksitler where s&#305;rano=ki&#351;iler.s&#305;rano) AS sayodmtarih, (select Count(odenentarih) from taksitler where s&#305;rano=ki&#351;iler.s&#305;rano) AS sayodntarih, ki&#351;iler.adsoyad, taksitler.taksitsay&#305;s&#305;, taksitler.odememiktari, taksitler.odemetarihi, taksitler.odenentarih, taksitler.odenen, IIf((select max(odemetarihi) from taksitler where s&#305;rano=ki&#351;iler.s&#305;rano)<Date() And [sayodmtarih]-[sayodntarih] >1 And IsNull([odenentarih]),"1 den fazla taksit atlam&#305;&#351;",iif(odemetarihi>date(),"vadesi gelmemi&#351;","odenmis")) AS Durumu
FROM ki&#351;iler INNER JOIN taksitler ON ki&#351;iler.s&#305;rano = taksitler.s&#305;rano
GROUP BY ki&#351;iler.s&#305;rano, ki&#351;iler.adsoyad, taksitler.taksitsay&#305;s&#305;, taksitler.odememiktari, taksitler.odemetarihi, taksitler.odenentarih, taksitler.odenen;
 

poetika

Altın Üye
Katılım
6 Kasım 2005
Mesajlar
127
Excel Vers. ve Dili
Excel 2010 Türkçe
Altın Üyelik Bitiş Tarihi
30-09-2027
tekrar merhabalar.
sayın beab öncelikle çok teşekkür ederim. harika bişey olmuş. hatalı olduğunu sandığım kayıtları excelde listeledim ve ekte sunuyorum. sanırım sadece "ödenmiş" statüsündeki bazı kayıtlarda problem var. diğer statüler düzgün çalışıyor. tekrar teşekkürler. saygılar.
 

beab05

Özel Üye
Katılım
19 Mart 2007
Mesajlar
1,418
Excel Vers. ve Dili
Office 2013
Merhaba;
San&#305;r&#305;m hatalar&#305; d&#252;zelttim ama sizin hatal&#305; giri&#351;leriniz var gibi geldi &#246;rne&#287;in baz&#305; isimlerde &#246;deme yapm&#305;&#351;s&#305;n&#305;z ama &#246;deme tarihini yazmam&#305;&#351;s&#305;n&#305;z ve bunlar&#305; do&#287;al olarak &#246;denmi&#351; g&#246;sterdim. Ayr&#305;ca &#246;demesi bug&#252;n olanlar&#305; da belirttim b&#246;ylece g&#252;nl&#252;k takip te yapabilirsiniz. Tekrar inceleyiniz l&#252;tfen..


SELECT ki&#351;iler.s&#305;rano, (select Count(odemetarihi) from taksitler where s&#305;rano=ki&#351;iler.s&#305;rano) AS sayodmtarih, (select Count(odenentarih) from taksitler where s&#305;rano=ki&#351;iler.s&#305;rano) AS sayodntarih, ki&#351;iler.adsoyad, taksitler.taksitsay&#305;s&#305;, taksitler.odememiktari, taksitler.odemetarihi, taksitler.odenentarih, taksitler.odenen, IIf(odemetarihi <Date() And [sayodmtarih]-[sayodntarih] >1 And odenen=0,"1 den fazla taksit atlam&#305;&#351;",IIf(odemetarihi<Date() And [sayodmtarih]-[sayodntarih] =1 And IsNull([odenentarih]),"&#214;deme yap&#305;lmam&#305;&#351;",iif(odemetarihi>date(),"vadesi gelmemi&#351;",iif(odemetarihi=date() and odenen=0,"Bugun Odenmeli","odenmis")))) AS Durumu
FROM ki&#351;iler INNER JOIN taksitler ON ki&#351;iler.s&#305;rano = taksitler.s&#305;rano
GROUP BY ki&#351;iler.s&#305;rano, ki&#351;iler.adsoyad, taksitler.taksitsay&#305;s&#305;, taksitler.odememiktari, taksitler.odemetarihi, taksitler.odenentarih, taksitler.odenen;
 
Son düzenleme:

poetika

Altın Üye
Katılım
6 Kasım 2005
Mesajlar
127
Excel Vers. ve Dili
Excel 2010 Türkçe
Altın Üyelik Bitiş Tarihi
30-09-2027
sayın beab haklısınız aldığım bazı hatalı kayıtlar yüzünden çalışmayanlar da olmuş. vermiş olduğunuz kodun en son hali sorunsuz çalışmaktadır. emeğinize sağlık çok teşekkürler. başarılar dilerim.
 

beab05

Özel Üye
Katılım
19 Mart 2007
Mesajlar
1,418
Excel Vers. ve Dili
Office 2013
Siz tekrar kontrol edin &#231;&#252;nk&#252; d&#252;zeltme yapt&#305;m yukar&#305;dan son halini deneyin. ;)
 
Üst