2012-10-15 10 views
5

में मेरे पास एक उपस्थिति प्रणाली बनाने के मेरे हाथ पर असाइनमेंट है जो मैं ठीक कर रहा हूं लेकिन मैं एक ही स्थान पर फंस गया हूं। पत्तियों की गिनती करते समय, यदि कोई व्यक्ति शुक्रवार को छुट्टी लेता है और फिर सोमवार को फिर से निकलता है, तो शनिवार और रविवार के बीच में पत्तियों के रूप में भी गिना जाना चाहिए।केवल शुक्रवार का चयन करें और सोमवार को mysql

मैं क्वेरी का पालन करते हुए केवल शुक्रवार और सोमवार को मेरी मेज से निकालने में सक्षम किया गया है:

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

लेकिन मैं शुक्रवार और अगले सोमवार को चुनने के लिए कैसे केवल तो मैं जानता हूँ कि पता नहीं है कि व्यक्ति शुक्रवार को सोमवार को छुट्टी पर था।

किसी भी मदद की सराहना की जाएगी।

+1

आप अपने डमी डेटा पोस्ट करें कर सकते हैं तो हम परीक्षण कर सकते हैं? –

+0

मेरी तालिका में निम्नलिखित फ़ील्ड हैं: दिनांक, कर्मचारी संख्या और कर्मचारी की स्थिति। –

उत्तर

5

यह आप सभी "पत्ते" जो एक शुक्रवार और आने वाले सोमवार को अवधि दे देंगे:

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

लेकिन यह केवल उन अभिलेखों को देता है जो शुक्रवार हैं। –

+1

@JewelThief: ऐसा नहीं करना चाहिए ... हालांकि कॉलम नाम टकराते हैं, इसलिए आपका ग्राहक सोमवार कॉलम तक पहुंचने में सक्षम नहीं हो सकता है। आप उन्हें उपनाम कर सकते हैं उदा। 'SELECT fri.emp_no, fri.Date शुक्रवार के रूप में, सोमवार को सोमवार के रूप में ...' – eggyal

+0

धन्यवाद @eggyal। आपने वास्तव में मेरी समस्या हल की है। आप क्वेरी सही है। मैं इसे चलाने में गलती कर रहा था। –