• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

sorgulama ile ilgili yardıma ihtiyacım var.

  • Konbuyu başlatan Konbuyu başlatan poetika
  • Başlangıç tarihi Başlangıç tarihi

poetika

Altın Üye
Katılım
6 Kasım 2005
Mesajlar
142
Excel Vers. ve Dili
Excel 2010 Türkçe
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.
 
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;
 
Hocam, süpersin. Teşekkürler.

Selam ve sevgiler.
 
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.
 
görüntüyü yollamamışım sanırım. özür dilerim ekte yolluyorum.
 
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.
 
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..
 
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.
 
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;
 
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;
 
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.
 
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:
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.
 
Siz tekrar kontrol edin &#231;&#252;nk&#252; d&#252;zeltme yapt&#305;m yukar&#305;dan son halini deneyin. ;)
 
Geri
Üst