मैं पिछले 24 महीनों के लिए, महीने के हिसाब से बिक्री की रिपोर्ट करना चाहता हूं। अगले महीने संख्याओं के 25वें महीने के सेट को रिपोर्ट छोड़ देनी चाहिए और पिछले 24 महीनों को फिर से दिखाना चाहिए। मुझे यकीन नहीं है कि वर्ष परिवर्तन को संभालने के लिए क्वेरी कैसे लिखनी है। यही सब कुछ मेरे पास है।
select [Amount] * -1 as 'Parts Not Sold On Service Order Current', 0 as 'Parts Sold On Service Order', [Document Date]
from [G_L Entry]
where [G_L Account No_] between '40000' and '49999'
and [Dimension code] = 'par'
and [Document No_] not like 'PSV%'
AND YEAR([Document Date]) = YEAR(CURRENT_TIMESTAMP)
AND MONTH([Document Date]) = MONTH(CURRENT_TIMESTAMP)
union
select [Amount] * -1 as 'Parts Not Sold On Service Order Current -1', 0 as 'Parts Sold On Service Order', [Document Date]
from [G_L Entry]
where [G_L Account No_] between '40000' and '49999'
and [Dimension code] = 'par'
and [Document No_] not like 'PSV%'
AND YEAR([Document Date]) = YEAR(CURRENT_TIMESTAMP)
AND MONTH([Document Date]) = MONTH(CURRENT_TIMESTAMP) -1
union
select [Amount] * -1 as 'Parts Not Sold On Service Order Current -2', 0 as 'Parts Sold On Service Order', [Document Date]
from [G_L Entry]
where [G_L Account No_] between '40000' and '49999'
and [Dimension code] = 'par'
and [Document No_] not like 'PSV%'
AND YEAR([Document Date]) = YEAR(CURRENT_TIMESTAMP)
AND MONTH([Document Date]) = MONTH(CURRENT_TIMESTAMP) -2
यह पिछले वर्ष में जाने के बाद उसी वर्ष के परिणामों को दोहराना शुरू कर देता है। माह पिछले वर्ष से केवल 5 महीने का हो सकता है। अगला महीना 6 महीने का होगा। इसे संभालने के लिए मैं क्वेरी कैसे लिखूं?
1 उत्तर
यह मानते हुए कि आपकी क्वेरी वैसे ही काम कर रही है जैसे आप इसे पहले से ही हर दूसरे पहलू में चाहते हैं, अपने WHERE
स्टेटमेंट में निम्नलिखित को जोड़ने का प्रयास करें:
AND DateDiff(Month, [Document Date], CURRENT_TIMESTAMP) < 24
आपको अपनी विशेष रिपोर्ट के लिए इसे ठीक से प्राप्त करने के लिए इसके साथ थोड़ा खेलना पड़ सकता है (उदाहरण के लिए, "<23", "< 25", आदि)
मैं एक दिमागी पाठक नहीं हूं, लेकिन इसे आपके वर्तमान WHERE
कथन में एकीकृत करने से आपको वह मिल सकता है जो आप चाहते हैं और आपकी क्वेरी को निम्नलिखित तक छोटा कर सकते हैं (आपके union
के बिना):
select [Amount] * -1 as 'Parts Not Sold On Service Order Current', 0 as 'Parts Sold On Service Order', [Document Date]
from [G_L Entry]
where [G_L Account No_] between '40000' and '49999'
and [Dimension code] = 'par'
and [Document No_] not like 'PSV%'
AND DateDiff(Month, [Document Date], CURRENT_TIMESTAMP) < 24
संबंधित सवाल
नए सवाल
datetime
कई प्रोग्रामिंग भाषाओं में एक डेटटाइम ऑब्जेक्ट एक तारीख और दिन का समय बताता है। यह एक समय पर या किसी कैलेंडर पर एक स्थिति को व्यक्त कर सकता है, यह उस संदर्भ पर निर्भर करता है जिसमें इसका उपयोग किया जाता है और विशिष्ट कार्यान्वयन। इस टैग का उपयोग सभी दिनांक और समय संबंधित समस्याओं के लिए किया जा सकता है।