Arkadaşlar geliştirmekte olduğum bir rezervasyon sisteminde SQL de bir konuyu bir türlü çözebilmiş değilim. yardımlarınızı bekliyorum.
Create Table OtelPeriod
(
OtelPeriodID int IDENTITY(1,1)Primary Key,
OtelID int,
Tarih datetime
)
INSERT INTO OtelPeriod (OtelID,Tarih)Values(1,'2012-03-16')
INSERT INTO OtelPeriod (OtelID,Tarih)Values(1,'2012-03-17')
INSERT INTO OtelPeriod (OtelID,Tarih)Values(1,'2012-03-18')
INSERT INTO OtelPeriod (OtelID,Tarih)Values(1,'2012-03-19')
INSERT INTO OtelPeriod (OtelID,Tarih)Values(2,'2012-03-15')
INSERT INTO OtelPeriod (OtelID,Tarih)Values(2,'2012-03-16')
INSERT INTO OtelPeriod (OtelID,Tarih)Values(2,'2012-03-17')
INSERT INTO OtelPeriod (OtelID,Tarih)Values(2,'2012-03-18')
INSERT INTO OtelPeriod (OtelID,Tarih)Values(2,'2012-03-19')
INSERT INTO OtelPeriod (OtelID,Tarih)Values(2,'2012-03-17')
INSERT INTO OtelPeriod (OtelID,Tarih)Values(2,'2012-03-18')
INSERT INTO OtelPeriod (OtelID,Tarih)Values(2,'2012-03-19')
INSERT INTO OtelPeriod (OtelID,Tarih)Values(2,'2012-03-20')
istediği şey ise şu.
Siteden 2 tarih seçtiğinizi ve bu iki tarih arasında olan otelleri listelediğini düşünün.
Ornek 1:
Birinci Tarih : 2012-03-16
İkinciTarih : 2012-03-18 ise
16 ve 18 in yer aldığı OtelID 1 ve 2 gelmesi lazım
Ornek 2:
Birinci Tarih : 2012-03-15
İkinciTarih : 2012-03-18 ise
16 ve 18 in yer aldığı OtelID 2 gelmesi lazım diğerleri gelmemeli.
Bu konuda Between , in, <= ve >= gibi bir çok fonksiyonu kullandım ama her seferinde eğer field içinde bu tarihlerden biri varsa hepsi geliyor. bu iki tarihten biri bile yoksa o otelin gelmemesi lazım.
Bu konunun between ile çözüleceğini düşünüyorum. ama between iki tarih arasında bir tanesi bile varsa lislelediği için
"Tarih Between '2012-03-15' And ' 2012-03-18' burada betweene eğer '2012-03-15' yoksa getirme o oteli
nasıl derim.
Create Table OtelPeriod
(
OtelPeriodID int IDENTITY(1,1)Primary Key,
OtelID int,
Tarih datetime
)
INSERT INTO OtelPeriod (OtelID,Tarih)Values(1,'2012-03-16')
INSERT INTO OtelPeriod (OtelID,Tarih)Values(1,'2012-03-17')
INSERT INTO OtelPeriod (OtelID,Tarih)Values(1,'2012-03-18')
INSERT INTO OtelPeriod (OtelID,Tarih)Values(1,'2012-03-19')
INSERT INTO OtelPeriod (OtelID,Tarih)Values(2,'2012-03-15')
INSERT INTO OtelPeriod (OtelID,Tarih)Values(2,'2012-03-16')
INSERT INTO OtelPeriod (OtelID,Tarih)Values(2,'2012-03-17')
INSERT INTO OtelPeriod (OtelID,Tarih)Values(2,'2012-03-18')
INSERT INTO OtelPeriod (OtelID,Tarih)Values(2,'2012-03-19')
INSERT INTO OtelPeriod (OtelID,Tarih)Values(2,'2012-03-17')
INSERT INTO OtelPeriod (OtelID,Tarih)Values(2,'2012-03-18')
INSERT INTO OtelPeriod (OtelID,Tarih)Values(2,'2012-03-19')
INSERT INTO OtelPeriod (OtelID,Tarih)Values(2,'2012-03-20')
istediği şey ise şu.
Siteden 2 tarih seçtiğinizi ve bu iki tarih arasında olan otelleri listelediğini düşünün.
Ornek 1:
Birinci Tarih : 2012-03-16
İkinciTarih : 2012-03-18 ise
16 ve 18 in yer aldığı OtelID 1 ve 2 gelmesi lazım
Ornek 2:
Birinci Tarih : 2012-03-15
İkinciTarih : 2012-03-18 ise
16 ve 18 in yer aldığı OtelID 2 gelmesi lazım diğerleri gelmemeli.
Bu konuda Between , in, <= ve >= gibi bir çok fonksiyonu kullandım ama her seferinde eğer field içinde bu tarihlerden biri varsa hepsi geliyor. bu iki tarihten biri bile yoksa o otelin gelmemesi lazım.
Bu konunun between ile çözüleceğini düşünüyorum. ama between iki tarih arasında bir tanesi bile varsa lislelediği için
"Tarih Between '2012-03-15' And ' 2012-03-18' burada betweene eğer '2012-03-15' yoksa getirme o oteli