2012-10-15 21 views
5

Elimden geldiğim bir Katılım sistemi oluşturmak için elimde bir görev var ama tek bir yerde takılıyorum. Yaprakları sayarken, bir kişi Cuma günü izin alır ve Pazartesi günü tekrar izin alırsa, o zaman cumartesi ve pazar günleri arasında da yaprak olarak sayılmalıdır.Sadece Cuma'yı seçin ve Pazartesi'yi mysql'e gönderin

sorgu izleyerek masamın sadece cuma ve pazartesi günleri ayıklamak mümkün olmuştur:

SELECT * FROM `main` WHERE (DAYOFWEEK(DATE) =2 OR DAYOFWEEK(DATE) =6) 
AND emp_no =4 AND STATUS ='leave' ORDER BY DATE ASC 

ama öğrenmek Cuma ve sonraki Pazartesi sadece yüzden nasıl seçileceğini bilmiyorum Kişi Cuma günü olduğu gibi Pazartesi günü de izinliydi.

Herhangi bir yardım için teşekkür ederiz.

+1

Eğer kukla veri göndermek miyim acaba? –

+0

Masamın şu alanları var: tarih, çalışan numarası ve çalışan durumu. –

cevap

5

Bu size Cuma ve aşağıdaki Pazartesi yayılan tüm "yaprakları" verecektir: Biz test edebilirsiniz böylece

SELECT * 
FROM main fri JOIN main mon 
    ON fri.DAYOFWEEK(DATE)=6 
    AND mon.DATE = fri.DATE + INTERVAL 3 DAY 
    AND fri.emp_no = mon.emp_no 
WHERE fri.STATUS='leave' AND mon.STATUS='leave' 
+0

ama sadece Cuma günleri kayıtlarını veriyor. –

+1

@JewelThief: Yapmamalı ... sütun adları çarpışsa da, müşteriniz Pazartesi sütunlarına erişemeyebilir. Bunları takma ad olarak ör. SELECT fri.emp_no, fri.DATE Cuma, mon.DATE pazartesi FROM ... ' – eggyal

+0

Teşekkürler @eggyal. Sorunumu gerçekten çözdün. Sorgu doğru. Koşarken hata yapıyordum. –