26/11/2018, 16:11
Sorguda Zaman Ölçütü Olarak Ne Kullanmalıyım
26/11/2018, 16:17
Oğuz Türkyılmaz
(26/11/2018, 15:39)haliliyas yazdı:Halil bey merhaba. Aslında ben o detaydaki farkı gördüm ama yapmak istediğimle bağdaştıramadığım için es geçtim, Bu konuyu çözdükten sonraki sorum o olacaktı.nedenine gelirsem .Ben normalde satılık kayıtlarını 3 veya daha fazla ay sonrası için sorgulatabilirim. Ama kiralık olayına gelirsek, kiralık ürünler de en fazla 1 ay bilemediniz 45 gündür kiraya verilme süreci. Bu yüzden eski kayıtlar da en fazla bu kadar geriye gitmek kiralıklar için yeterlidir.Ben satılık kayıtları için 3-4 ay lık bir tarama istiyorum ama kiralık kayıtları için 45 gün. Yani ben Konut tipini satılık seçtiğimdeki sorgunun tarih parametresi 3 yada daha fazla ay olacak ama eğer Konut tipini kiralık seçersem son 45 günlük kayıtlar sogudan çekilecek.(26/11/2018, 14:13)Oğuz Türkyılmaz yazdı: 31.08.2018 tarihli kaydı görmeye devam ediyorum. bir yeri atlıyorum herhalde ama nereyi.
oğuz bey 31.ağustosu gösterme sebebi sizin sorgunuzda "veya" bağlacının bulunması
sorguya dikkat ederseniz ben her koşulu 2 defa girdim çünkü
sorgu hem kira hem de satılık aradığından her koşulu 2 satır için de girmelisiniz
between dateadd("m",-3,date()) and date()
yerine ise aşağıdaki kodu deneyin
Between DateAdd('m';-3;Date()) And Date()
26/11/2018, 16:21
Oğuz Türkyılmaz
(26/11/2018, 16:11)ozanakkaya yazdı: Merhaba, son 3 aylık veride, tarih 26/08/2018'den başlar. 31/08/2018 tarihi 3 aylık veri içerisinde değil mi??Ozan bey gün hesabı olarak yapılmayacak demiştik halil beyle görüşürken ay bazında kriter alacaktı ölçüte yazacağımız ifade. Kasım Ayındaysak Kasım, Ekim ve Eylülü içine alacak.
26/11/2018, 16:52
berduş
oğuz bey bence en mantıklısı sorguda between kodunu kullanmanız
çalıştıracağınız forma 2 adet tarih kutusu eklersiniz
BasTar - varsayılan değer date()-45yada 3 ay
BitTar - varsayılan değer Date() gibi,
between bu kutulara tanımlanır
açılır kutu olayına da
eğer satılıksa 3 ay çıkar, kiralıksa 45 gün çıkar diye bilirsiniz
ama en güzel tarafı sorguyu değiştirmeden
BasTar ve BitTar değerlerini değiştirerek istediğiniz aralığı girebilmeniz olur
çalıştıracağınız forma 2 adet tarih kutusu eklersiniz
BasTar - varsayılan değer date()-45yada 3 ay
BitTar - varsayılan değer Date() gibi,
between bu kutulara tanımlanır
açılır kutu olayına da
eğer satılıksa 3 ay çıkar, kiralıksa 45 gün çıkar diye bilirsiniz
ama en güzel tarafı sorguyu değiştirmeden
BasTar ve BitTar değerlerini değiştirerek istediğiniz aralığı girebilmeniz olur
26/11/2018, 17:00
ozanakkaya
Srg_sonuclar isimli sorgunun Sql kaynağını aşağıdaki ile değiştirerek deneyiniz.
26/11/2018 tarihinde 26/09/2018 sonrasındaki kayıtları verir.
SELECT srg_satici.Adisoyadi, srg_satici.Lokasyon_1, srg_alici.Adisoyadi, srg_alici.Lokasyon_1, srg_satici.kirabedeli AS kiralayaverenbedel, srg_alici.kirabedeli AS kiralayanbedel, srg_satici.SatışBedeli AS satici, srg_alici.SatışBedeli AS alici, srg_satici.MobilNo_1, srg_alici.MobilNo_1, srg_satici.OdaTipi, srg_alici.OdaTipi, srg_satici.esyali, srg_alici.esyali, srg_satici.Siteİcinde, srg_alici.Siteİcinde, srg_alici.EmlakTipi, srg_alici.EmlakKategorisi, srg_satici.IlanNo, srg_satici.kayittarihi, srg_alici.kayittarihi
FROM srg_satici INNER JOIN srg_alici ON (srg_satici.EmlakKategorisi = srg_alici.EmlakKategorisi) AND (srg_satici.EmlakTipi = srg_alici.EmlakTipi)
WHERE (((srg_alici.Adisoyadi)<>srg_satici!Adisoyadi) And ((srg_satici.kirabedeli)<=srg_alici.kirabedeli*1.15 And (srg_satici.kirabedeli)>=srg_alici.kirabedeli*0.75) And ((srg_alici.EmlakTipi)=Formlar!F_200_PortfoyEslestirme!cboEmlakTipi) And ((srg_alici.EmlakKategorisi)=Formlar!F_200_PortfoyEslestirme!cboEmlakKategorisi) And ((srg_satici.kayittarihi) Between DateAdd("m",-2,Date()) And Date()) And ((srg_alici.kayittarihi) Between DateAdd("m",-2,Date()) And Date())) Or (((srg_alici.Adisoyadi)<>srg_satici!Adisoyadi) And ((srg_satici.SatışBedeli)<=srg_alici.SatışBedeli*1.15 And (srg_satici.SatışBedeli)>=srg_alici.SatışBedeli*0.75) And ((srg_alici.EmlakTipi)=Formlar!F_200_PortfoyEslestirme!cboEmlakTipi) And ((srg_alici.EmlakKategorisi)=Formlar!F_200_PortfoyEslestirme!cboEmlakKategorisi) And ((srg_satici.kayittarihi) Between DateAdd("m",-2,Date()) And Date()) And ((srg_alici.kayittarihi) Between DateAdd("m",-2,Date()) And Date()));
26/11/2018 tarihinde 26/09/2018 sonrasındaki kayıtları verir.
26/11/2018, 22:15
Oğuz Türkyılmaz
(26/11/2018, 17:00)ozanakkaya yazdı: Srg_sonuclar isimli sorgunun Sql kaynağını aşağıdaki ile değiştirerek deneyiniz.
SELECT srg_satici.Adisoyadi, srg_satici.Lokasyon_1, srg_alici.Adisoyadi, srg_alici.Lokasyon_1, srg_satici.kirabedeli AS kiralayaverenbedel, srg_alici.kirabedeli AS kiralayanbedel, srg_satici.SatışBedeli AS satici, srg_alici.SatışBedeli AS alici, srg_satici.MobilNo_1, srg_alici.MobilNo_1, srg_satici.OdaTipi, srg_alici.OdaTipi, srg_satici.esyali, srg_alici.esyali, srg_satici.Siteİcinde, srg_alici.Siteİcinde, srg_alici.EmlakTipi, srg_alici.EmlakKategorisi, srg_satici.IlanNo, srg_satici.kayittarihi, srg_alici.kayittarihi
FROM srg_satici INNER JOIN srg_alici ON (srg_satici.EmlakKategorisi = srg_alici.EmlakKategorisi) AND (srg_satici.EmlakTipi = srg_alici.EmlakTipi)
WHERE (((srg_alici.Adisoyadi)<>srg_satici!Adisoyadi) And ((srg_satici.kirabedeli)<=srg_alici.kirabedeli*1.15 And (srg_satici.kirabedeli)>=srg_alici.kirabedeli*0.75) And ((srg_alici.EmlakTipi)=Formlar!F_200_PortfoyEslestirme!cboEmlakTipi) And ((srg_alici.EmlakKategorisi)=Formlar!F_200_PortfoyEslestirme!cboEmlakKategorisi) And ((srg_satici.kayittarihi) Between DateAdd("m",-2,Date()) And Date()) And ((srg_alici.kayittarihi) Between DateAdd("m",-2,Date()) And Date())) Or (((srg_alici.Adisoyadi)<>srg_satici!Adisoyadi) And ((srg_satici.SatışBedeli)<=srg_alici.SatışBedeli*1.15 And (srg_satici.SatışBedeli)>=srg_alici.SatışBedeli*0.75) And ((srg_alici.EmlakTipi)=Formlar!F_200_PortfoyEslestirme!cboEmlakTipi) And ((srg_alici.EmlakKategorisi)=Formlar!F_200_PortfoyEslestirme!cboEmlakKategorisi) And ((srg_satici.kayittarihi) Between DateAdd("m",-2,Date()) And Date()) And ((srg_alici.kayittarihi) Between DateAdd("m",-2,Date()) And Date()));
26/11/2018 tarihinde 26/09/2018 sonrasındaki kayıtları verir.
Ozan bey teşekkür ederim. Forma başlangıç ve bitiş tarihleri ile sorguyada bu parametreleri ekledim. ( Sn.Mehmet Demiral'ın bir uygulamasından öğrendim ) Konuyu fazla uzatmayayım , artık kullanıcıya seçtireceğim tarihleri fazladan iki tarih giriversinler.