現在、SSRS でこの select ステートメントを使用して、最近の需要と在庫日数をエンド ユーザーに報告しています。
select Issue.MATERIAL_NUMBER,
SUM(Issue.SHIPPED_QTY)AS DEMAND_QTY,
Main.QUANTITY_TOTAL_STOCK / SUM(Issue.SHIPPED_QTY) * 122 AS [DOI]
From AGS_DATAMART.dbo.GOODS_ISSUE AS Issue
join AGS_DATAMART.dbo.OPR_MATERIAL_DIM AS MAT on MAT.MATERIAL_NUMBER = Issue.MATERIAL_NUMBER
join AGS_DATAMART.dbo.SCE_ECC_MAIN_FINAL_INV_FACT AS MAIN on MAT.MATERIAL_SID = MAIN.MATERIAL_SID
join AGS_DATAMART.dbo.SCE_PLANT_DIM AS PLANT on PLANT.PLANT_SID = MAIN.PLANT_SID
Where Issue.SHIP_TO_CUSTOMER_ID = @CUSTID
and Issue.ACTUAL_PGI_DATE > GETDATE() - 122
and PLANT.PLANT_CODE = @CUSTPLANT
and MAIN.STORAGE_LOCATION = '0001'
Group by Issue.MATERIAL_NUMBER,Main.QUANTITY_TOTAL_STOCK
ものすごく単純。
しかし、値を組み合わせる必要がある類似の物質番号を持っていることに気づきました。
Material | Qty
0242-55161W 1
0242-55161 3
上記の 2 つの材料番号を組み合わせて、0242-55161 数量 4 として報告する必要があります。このように行を組み合わせるにはどうすればよいですか? これは、調整が必要な多くのクエリの 1 つにすぎません。出来ますか?
編集 - 同様の素材は、それが重要な場合、常に基数に「W」を加えたものになります。
私は SQL と SSRS にまったく慣れていないことに注意してください。ここに投稿するのはこれが初めてです。他の詳細を含める必要がある場合はお知らせください。
前もって感謝します。
答え;
置換だけを使用すると、SUMを使用しても2つの一意の行が返され続けました。以下を使用して、目的の結果を得ることができました。この方法で何か問題があることがわかりますか?
with Issue_Con AS
(
select replace(Issue.MATERIAL_NUMBER,'W','') As [MATERIAL_NUMBER],
Issue.SHIPPED_QTY AS [SHIPPED_QTY]
From AGS_DATAMART.dbo.GOODS_ISSUE AS Issue
Where Issue.SHIP_TO_CUSTOMER_ID = @CUSTSHIP
and Issue.SALES_ORDER_TYPE_CODE = 'ZTPC'
and Issue.ACTUAL_PGI_DATE > GETDATE() - 122
)
select Issue_Con.MATERIAL_NUMBER,
SUM(Issue_Con.SHIPPED_QTY)AS [DEMAND_QTY],
Main_Con.QUANTITY_TOTAL_STOCK / SUM(Issue_Con.SHIPPED_QTY) * 122 AS [DOI]
From Issue_Con
join Main_Con on Main_Con.MATERIAL_Number = Issue_Con.MATERIAL_Number
Group By Issue_Con.MATERIAL_NUMBER, Main_Con.QUANTITY_TOTAL_STOCK;