मैं कोशिश कर रहा हूँ पिवट करने के लिए एक पंक्ति में स्तंभों पर आधारित हैं कि स्वरूपित दिनांकों 'yyyy-एम एम एम' और, जबकि यह काम करता है के रूप में की उम्मीद के लिए एक वर्तमान महीने की अवधि में, यह विफल रहता है, काम करने के लिए भविष्य के लिए महीने और मैं नहीं कर सकते हैं बाहर आंकड़ा कैसे इसे ठीक करने के लिए और बहुत किसी भी प्रतिक्रिया की सराहना करते हैं इस पर.
यहाँ एक छोटी सी पृष्ठभूमि की बिट: मैं खरीदा है मात्रा से आ रही एक विक्रेता सारांश तालिका शामिल है कि जानकारी के बारे में एक अनुबंध के रूप में इस तरह के अनुबंध के प्रकार, मात्रा, बहुत संख्या, निर्माण तिथि में स्वरूपित 'yyyy-एम एम एम' के रूप में वास्तविक तिथि फर्क नहीं पड़ता, इस उद्देश्य के लिए.
शेष मात्रा है एक और क्षेत्र से आ रही एक आइटम लेज़र प्रविष्टि तालिका है जो अनिवार्य रूप से संक्षेप में सभी प्रकार की प्रविष्टियों के आधार पर बहुत संख्या है.
भस्म मात्रा है क्या मैं कोशिश कर रहा हूँ करने के लिए धुरी के आधार पर महीने यह भस्म हो गया था और यह भी आ रहा है से आइटम लेज़र प्रविष्टियों के साथ एक प्रविष्टि प्रकार से फिल्टर
SELECT *
FROM
(
SELECT VS.[Vendor Name], VS.[Vendor No_] AS 'Vendor_No', VS.[Date] AS 'Date',
SUM(VS.Quantity) AS 'Contracted_Quantity',
SUM(CQ.Consumed_Qty*-1) AS 'Consumed_Qty',
SUM(RQ.Remaining_Qty) AS Remaining_Qty,
'Contract Type' =
CASE
WHEN VS.[Contract Type] = 1 THEN 'CONTRACT A'
WHEN VS.[Contract Type] = 2 THEN 'CONTRACT B'
ELSE 'OTHERS'
END
FROM
(SELECT [Document No_],[Vendor No_],[Lot No_],FORMAT([Date Created], 'yyyy-MMM') AS 'Date'
,[Purch_ Contract No_],[Contract Type],[Quantity] FROM [A].[dbo].[Company$Volume Summary]) VS
/*to identify remaining quantity by lot (Lot no. is included in my VS alias statement)*/
LEFT JOIN (SELECT [Lot No_] ,SUM([Remaining Quantity]) AS Remaining_Qty FROM [A].[dbo].[Company$Item Ledger Entry]
GROUP BY [Lot No_]) RQ on RQ.[Lot No_] = VS.[Lot No_]
/*to identify consumed volume, if consumption is in future month compared to purchase month, it doesn't populate, this is where I believe the problem is*/
LEFT JOIN (SELECT [Lot No_],FORMAT([Posting Date], 'yyyy-MMM') AS 'Date',SUM([Quantity]) AS Consumed_Qty
FROM [A].[dbo].[Company$Item Ledger Entry]
WHERE [Entry Type] = '5'
GROUP BY [Lot No_], Format([Posting Date], 'yyyy-MMM')) CQ on CQ.[Lot No_] = VS.[Lot No_] and CQ.Date >= VS.[Date]
GROUP BY VS.[Vendor Name], FORMAT(VS.[Date Created],'yyyy-MMM'), PT.[Contract Type], VS.[Vendor No_]
) cs
PIVOT
(
SUM(Consumed_Qty)
for Date in ([2021-Sep], [2021-Oct], [2021-Nov])
) pvt
परिणाम (केवल दिखा आंशिक रूप से):
के रूप में आप देख सकते हैं, दूसरी एबीसी प्रौद्योगिकी रिकॉर्ड से पता चलता है एक की खपत में 2021-Oct जो सही है, तथापि, के आधार पर कि अनुबंधित राशि खरीदा भी 2021 में-अक्टूबर, और क्या शेष है, जो रिकॉर्ड, खपत की जरूरत के लिए जा 9,373 और कम है (383) की तुलना में 8,990 यह सही ढंग से प्रदर्शित करने में 2021-अक्तूबर. इस मामले में 383 वास्तविक खपत है गिरने में 2021-नवंबर, हालांकि, अपने कोड के लिए प्रतीत नहीं होता उस उठाओ.
इस सटीक मामले में दोनों ज़ेबरा प्रौद्योगिकियों के रिकॉर्ड के रूप में अच्छी तरह से, जहां शेष है 0, जो मतलब होगा यह किया गया है, पूरी तरह से भस्म हो जाता है, हालांकि, के बाद से खरीद अनुबंध के लिए तारीखों के रूप में 2021-सितंबर और खपत भविष्य में महीने 2021-अक्तूबर, SQL स्क्रिप्ट को लेने नहीं करता है ।
मैं सराहना करते हैं किसी भी मार्गदर्शन में मदद करने के लिए ठीक इस और धन्यवाद अग्रिम में.