ฉันกำลังพยายาม pivot แถวเข้าไปในคอลัมน์นั่นอยู่บนพื้นฐานของ formatted องวัน'yyyy-อืมและตอนนี้ทำงานเป็นคาดหวังให้เป็นปัจจุบันเดือนช่วงเวลามันล้มเหลวที่จะทำงานสำหรับอนาคตเดือนและฉันไม่สามารถหาวิธีที่จะแก้ไขเรื่องนี้และจะ greatly นซาบซึ้งมีการแจ้งเตือนการเริ่มทำงานกับเรื่องนี้
นี่คือนิดหน่อยของพื้นหลัง: ฉันต้องซื้อริมาจากผู้จำหน่ายรายงานสรุปโต๊ะนั่นรวมถึงการข้อมูลเกี่ยวกับสัญญาอย่างเช่นสัญญาประเภทริมาณมากเบอร์ของวันที่แฟ้มถูกสร้างจา formatted ไปยัง'yyyy-อืมเป็นจริงวันมันไม่สำคัญหรเพื่อสิ่งนี้
ที่เหลืออยู่ริคืออีกสองมาจากรายการบัญชีรายการโต๊ะซึ่งเป็นพื้นฐานแล้วสรุปได้แรงขึ้นทุกประเภทของรายการจากพื้นฐานมากมายเลข
กลือนกิริคือสิ่งที่ฉันกำลังพยายาม pivot จากรายเดือนมันกลือนกินและก็มาจากรายการบัญชีรายการกับคนประเภทรายการตัวกรอง
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
ผลลัพธ์(เดียวที่แสดงบางส่วนของ):
อย่างที่คุณเห็นที่สองเอบีซีเทคโนโลยีบันทึกแสดงเป็น consumption ใน 2021-ต.ค.นั่นคือที่ถูกต้อง,อย่างไรก็ตามเพราะเรื่องนั้นจ้างซื้อจำนวนมากก็อยู่ใน 2021-ต.ค.แล้วมันคืออะไรที่เหลืออยู่ในบันทึกที่ consumption ต้องการที่จะเป็น 9,373 และมันสั้น(383)เมื่อเทียบกับที่ 8,990 มันเป็นยำแสดงใน 2021-ต.ค.. ในกรณีนี้ค 383 จริงๆ consumption กำลังตกอยู่ใน 2021-พ.ย.อย่างไรก็ตามของฉันรหัสไม่เหมือนจะรับมันซะ
นี่คือส่วนผสมที่แน่นอนคดีในทั้งสองก็ต้องเทคโนโลยีบันทึกด้วยงั้น,ที่ไหนที่เหลือคือ 0 ซึ่งหมายความว่ามันถูกทั้งหมดมกมุ่นอย่างไรก็ตามตั้งแต่ซื้อสัญญาวันที่สำหรับทั้งสองของพวกเขาอยู่ใน 2021-ก.ย.และ consumption อยู่ในอนาคตกตอนเดือน 2021-ต.ค.ที่สคริปต์ภาษา sql ไม่ได้รับมันซะ
ฉันจะซาบซึ้งมากมีคำแนะนำที่ช่วยแก้ไขเรื่องนี้แล้วขอบคุณล่วงหน้า