Snažím sa pivot riadok do stĺpcov, ktoré sú založené na formátovaný dátumy 'yyyy-MMM" a aj keď to funguje, ako sa očakávalo pre aktuálny mesiac v období, keď prestane fungovať pre budúce mesiace a nemôžem prísť na to, ako to opraviť a veľmi by oceniť akúkoľvek spätnú väzbu na to.
Tu je trochu z pozadia: Mám nakúpené množstvo pochádzajú od Dodávateľa súhrnná tabuľka, ktorá obsahuje informácie o zmluve ako zmluvný typ, množstvo, číslo šarže, dátum vytvorenia formátované do 'yyyy-MMM" ako aktuálny dátum nezáleží na tento účel.
Zostávajúce Množstvo je ďalší pole pochádzajúce z položky ledger vstup tabuľke, ktorá je v podstate sčítaním všetky typy položiek založené na číslo šarže.
Spotrebované Množstvo je to, čo som sa snaží pivot založené na mesiac to bolo spotrebovaných a je tiež prichádza z položky kniha záznamov so vstupom typ filtra
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
VÝSLEDOK (Len ukáže čiastočne):
Ako môžete vidieť, druhý ABC Technológie záznam ukazuje spotrebu v roku 2021-Október, ktorý je presné, avšak, na základe zmluvne množstvo zakúpiť aj v roku 2021-Október, a to, čo zostáva v tom záznam, spotreby, musí byť 9,373 a je krátke (383) v porovnaní s 8,990 to je presne zobrazenie v roku 2021-Okt. V tomto prípade 383 skutočná spotreba klesá, v roku 2021-Nov, však, môj kód nezdá sa, že vyzdvihnúť, že až.
To je presne prípad v oboch Zebra technologies záznamy rovnako, ak je zostávajúci 0, ktorá by sa povedať, že to bol úplne spotrebované však od kúpnej zmluvy dátumom pre obe z nich sú v 2021-Sep a spotreba je v budúcnosti mesiac 2021-Október, SQL skript nepodá, že až.
Ja by som oceniť všetky pokyny, ktoré vám pomôžu vyriešiť tento a vďaka vopred.