|
|
Merhaba. Düşündüm düşündüm işin içinden çıkamadım.
Öncelikle olayı anlatayım: Sistemde belirli başlama ve bitiş tarihleri olan işler var. Yani Her işin ayrı bir başlama ve bitiş tarihi var.
üç farklı şekilde arama yapılabiliyor:
1. Sadece başlangıç tarihi
2. sadece bitiş tarihi
3. başlangıç ve bitiş tarihi
Sorun burda başlıyor. Örneğin 3. farklı iş olsun:
İŞ_BİR: 10.02.2010 - 25.02.2010
İŞ_İKİ: 20.02.2010 - 07.03.2010
İŞ_ÜÇ: 15.02.2010 - 10.03.2010
ben mesela 17.02.2010-08.03.2010 araması yaptığımda bu üç işinde çıkmasını istiyorum.
verdiğim örneği incelerseniz bu üç işinde nasıl çıktığını anlarsınız.
aradığım tarih işin tarihinin arasında ise de çıksın, başlangıcı kaçırmış ama bitişe daha varsa da çıksın, aradığım başlama tarihinde henüz başlamamaış ama aradığım bitiş tarihi işin içinde olduğu için de çıksın.
Bunu sql'de bir türlü yapamadım. aklıma gelmeyen birşeyler var ama ne???
edit: belirteyim; arama formundan iki değer geliyor.(arama_baslangic ve arama_bitis gibi)
işlerin adlarıda is_baslangic ve is_bitis olsun
If my calculations are correct, when this baby hits eighty-eight miles per hour... you"re gonna see some serious shit.
|
AsortiC

Kayıt : 14 Haziran 2006 Terapi!
|
|
Şöle bişi olabilir mi ?
Select * from tablo where baslangic_tarih like'%"&arama&"%' or bitis_tarih like'%"&arama&"%' order by id desc
|
|
|
yok olmaz. ayrıca belirteyim arama formundan iki tarih geliyor. başlangıç ve bitiş için. zira başka türlü tarih aralığı arayamam :)
If my calculations are correct, when this baby hits eighty-eight miles per hour... you"re gonna see some serious shit.
|
wking

Kayıt : 28 Mart 2010
|
|
select yıldız from tablo where baslangic_tarih >= datevalue('20.10.2010') and bitis_tarih <= datevalue('28.11.2010')
www.sarkimgeldi.com - Ne yani senin de şarkın gelmedi mi? Herkesin şarkısı gelebilir.
|
|
|
wking bunu yazdı: ----------------------------- select yıldız from tablo where baslangic_tarih >= datevalue('20.10.2010') and bitis_tarih <= datue'28.11.2010' -----------------------------
verdiğin tarihleri ilk mesajda verdiğim gibi düşündüm: select * from tablo where baslangic_tarih >= datevalue('17.02.2010') and bitis_tarih <= datue'08.03.2010'
bunun sonucunda sadece İŞ_İKİ gelmez mi sence?
If my calculations are correct, when this baby hits eighty-eight miles per hour... you"re gonna see some serious shit.
|
|
|
Biraz daha detaylandırayım:
ilk posttaki örnek üzerinden gidiyorum:
İŞ_BİR --- > arama_baslangic, is_baslangic'i geçmiş. Fakat is_bitis tarihi arama_baslangic ve arama_bitis arasında olduğu için çıkması gerekli
İŞ_İKİ --- > arama_baslangic, is_baslangic tarihinden önce VE arama_bitis, is_bitis tarihinden sonra. Bunun illaki çıkması gerekiyor
İŞ_ÜÇ --- > arama_baslangic, is_baslangictan sonra(yani iş başlamış bile) FAKAT arama_bitis, is_bitis'ten önce. yani bizim aradığım tarih içerisinde bu iş var.çıkması gerekli.
Bunu sql sorgusu halini soruyorum :)
If my calculations are correct, when this baby hits eighty-eight miles per hour... you"re gonna see some serious shit.
|
wking

Kayıt : 28 Mart 2010
|
|
NoktaliVirgul bunu yazdı: ----------------------------- wking bunu yazdı: -----------------------------
select yıldız from tablo where baslangic_tarih >= datevalue('20.10.2010') and bitis_tarih <= datue'28.11.2010'
----------------------------- verdiğin tarihleri ilk mesajda verdiğim gibi düşündüm: select * from tablo where baslangic_tarih >= datevalue('17.02.2010') and bitis_tarih <= datue'08.03.2010'
bunun sonucunda sadece İŞ_İKİ gelmez mi sence? -----------------------------
Hocam 348739 kere okudum bi şey ifade etmedi yazdıkların kbkma, ben azcık oyun oyniyim kafa uçmuş.
www.sarkimgeldi.com - Ne yani senin de şarkın gelmedi mi? Herkesin şarkısı gelebilir.
|
|
|
wking bunu yazdı: ----------------------------- NoktaliVirgul bunu yazdı: ----------------------------- wking bunu yazdı: -----------------------------
select yıldız from tablo where baslangic_tarih >= datevalue('20.10.2010') and bitis_tarih <= datue'28.11.2010'
----------------------------- verdiğin tarihleri ilk mesajda verdiğim gibi düşündüm: select * from tablo where baslangic_tarih >= datevalue('17.02.2010') and bitis_tarih <= datue'08.03.2010'
bunun sonucunda sadece İŞ_İKİ gelmez mi sence? -----------------------------
Hocam 348739 kere okudum bi şey ifade etmedi yazdıkların kbkma, ben azcık oyun oyniyi kaf uçmuş. -----------------------------
sende haklısın anlatamamış olabilirim. teşekkür ederim yinede.
If my calculations are correct, when this baby hits eighty-eight miles per hour... you"re gonna see some serious shit.
|
SnipeTR

Kayıt : 4 Haziran 2002 İstanbul
|
|
|
Cosmic (Harlem)

Kayıt : 14 Haziran 2006
|
|
select * from tablo where (baslangic_tarih <= datevalue('arama_baslangic') and bitis_tarih >= datevalue('arama_baslangic') and bitis_tarih <= datevalue('arama_bitis')) or (baslangic_tarih>=datevalue('arama_baslangic') and bitis_tarih<=datevalue('arama_bitis')) or (bitis_tarih<=datevalue('arama_baslangic') and bitis_tarih>=datevalue('arama_bitis'))
Bu profil 05-10-2011 tarihinden itibaren 609 tekil hit ve 1437 normal hit almistir.
|
Fikret

Kayıt : 1 Ekim 2007 GopCity
|
|
edit: hocam şu soruyu şekille şemayla birşeyle açıkça yazar mısın ?
screw you guys! i"m goin" hoooome!
|
|