2010-04-07 22 views
5

द्वारा समूहीकृत वित्तीय वर्ष डेटा पुनर्प्राप्त करने के लिए एसक्यूएल क्वेरी मेरे पास डेटाबेस है जिसमें दो कॉलम (service_date & invoice_amount) मानते हैं। मैं एक SQL क्वेरी बनाना चाहता हूं जो प्रत्येक वित्तीय वर्ष (जुलाई से जून) के लिए डेटा पुनर्प्राप्त और समूहित करे।वर्ष

मेरे पास दो साल का डेटा है, इसलिए यह दो वित्तीय वर्ष है (यानी 2 परिणाम)।

मुझे पता है कि मैं महीने के अनुसार समूह में SQL क्वेरी बनाकर मैन्युअल रूप से ऐसा कर सकता हूं, फिर वित्तीय वर्ष डेटा बनाने के लिए PHP के माध्यम से डेटा चला सकता हूं लेकिन मेरे पास एक SQL क्वेरी होगी।

सभी विचारों का स्वागत है।

धन्यवाद

उत्तर

17
SELECT 
    CASE WHEN MONTH(service_date)>=7 THEN 
      concat(YEAR(service_date), '-',YEAR(service_date)+1) 
    ELSE concat(YEAR(service_date)-1,'-', YEAR(service_date)) END AS financial_year, 
    SUM(invoice_amount) 
FROM mytable 
GROUP BY financial_year 

जो ओ/नीचे

financial_year invoice_amount 
2007-2008  10000.00 
2008-2009  15000.00 
2009-2010  20000.00 
+1

की तरह पी उत्पादन अरे अपनी अलौकिक , आप कैसे जानते थे कि उनकी मेज को भी मेराटेबल कहा जाता था? और आपने अंडरस्कोर के साथ वित्तीय_यायर का उपयोग किया .. – CResults

+0

मैं इसे अपनी नमूना तालिका के साथ जांचता हूं। उपरोक्त क्वेरी सिर्फ उदाहरण है, मुझे नहीं पता कि उसका टेबल नाम क्या है। मैं इसे अपने ब्राउज़र में देखता हूं और मुझे यह सही लगता है, इसलिए मैं किसी को यह जानने के लिए नमूना ओ/पी प्रदर्शित करता हूं कि उन्हें – Salil

+0

आपके सहायता साथी के लिए धन्यवाद। अच्छी तरह से काम। – mlevit

1

यह MSSQL में मेरे लिए काम करता .. आशा है कि यह MySQL में आप के लिए काम करता है

SELECT 
    CASE WHEN MONTH(service_date)>=7 THEN 
      YEAR(service_date)+1 
    ELSE YEAR(service_date) END AS financial_year, 
    SUM(invoice_amount) 
FROM mytable 
GROUP BY 
    CASE WHEN MONTH(service_date)>=7 THEN 
      YEAR(service_date)+1 
    ELSE YEAR(service_date) 
संबंधित मुद्दे