2013-08-12 6 views
9

मुझे MySQL में एक टेबल मिली है जो मुझे दैनिक आधार पर लॉग इन घंटे दिखाती है। मैं एक ऐसा दृश्य बनाने की कोशिश कर रहा हूं जो मुझे अपने डेटा को ब्लॉक/दिनों की सीमा से त्वरित रूप से समूहित करने की अनुमति देगा। सबसे आसान मामला मासिक आधार पर होगा जो मुश्किल नहीं होगा। मैं बस तारीख को "% y-% m" के रूप में चुन सकता हूं और फिर उस कॉलम द्वारा समूह कर सकता हूं।MySQL क्वेरी तिथि सीमा से समूह करने के लिए?

पूर्व:

select time_logged, date_format(start_date, '%Y-%m') AS `month_logged` 
from work_log 
group by month_logged 

कि ठीक काम करता है अगर मैं सिर्फ महीने के द्वारा समूहीकरण कर रहा हूँ। लेकिन मेरा मुद्दा यह है कि मुझे महीने के 13 वें महीने से अगले महीने के 12 वें तक समूह की आवश्यकता है (उदा: 13 जुलाई -12 अगस्त, 13 अगस्त- 12 सितंबर, आदि)।

क्या कोई प्रश्न/दृश्य में ऐसा करने का कोई आसान तरीका है? मैं एक ऐसी क्वेरी के साथ आना प्रतीत नहीं कर सकता जो मेरी ज़रूरतों के लिए काम करता है, यहां तक ​​कि विभिन्न दिनांक फ़ील्ड संयोजनों के साथ भी खेल रहा है।

+0

आप केवल 13 वीं या 12 वीं से संबद्ध डेटा की जरूरत है? या आप इस दिन तक ग्रुप करना चाहते हैं? – Hituptony

उत्तर

20

घटाना 13 दिन और आप अब कर रहे हैं समूहीकरण:

select time_logged, 
     date_format(start_date - interval 12 day, '%Y-%m') AS `month_logged` 
from work_log 
group by month_logged; 
+0

12 दिन मुझे लगता है, लेकिन +1 :) –

+0

स्मैक। बेशक। यह निश्चित रूप से सबसे आसान होगा। आखिर में यह क्लॉज के साथ जटिल के साथ काम कर रहा है, लेकिन यह इतना अधिक सरल और स्पष्ट है! धन्यवाद! –

संबंधित मुद्दे