我有一个具有相同项目名称但具有不同项目代码的表格,因为项目名称有02部分,第1部分具有相同的名称,但第2部分具有不同的名称。 结果通过以下查询返回:
select PO番号 as PONO,商品CD as ITEM_CD,品名1 as ITEM_NAME,[数量]as QTY
from [ENVIETNAMPO].[dbo].[TBL_PO_M]
where PO番号='GV07182'
我需要对所有具有相同名称但不同的项目代码的项目进行分组,并对这些项目进行汇总。
我想要的结果如下:
第二行的数量是:从第2行到第10行的总和数量为2279。 我使用此查询来消除重复的项目名称:
WITH CTE AS
(
SELECT *,ROW_NUMBER() OVER (PARTITION BY [GOODS CD],[Item No.] ORDER BY [GOODS CD],[Item No.]) AS RN
FROM #tmptable
)
DELETE FROM CTE WHERE RN<>1
但问题是我不能只获得02行作为我想要的结果。请帮忙。
答案 0 :(得分:0)
Select * into #TempA
from
( Select m.PONO,m.ITEM_NAME,Sum(m.QTY) as Total,
dense_rank() OVER (PARTITION BY m.PONO,m.ITEM_NAME ORDER BY m.PONO,m.ITEM_NAME) AS RN from
(
SELECT *,ROW_NUMBER() OVER (PARTITION BY PONO,ITEM_NAME ORDER BY PONO,ITEM_NAME) AS RN
FROM [Tbl_PO_m]
)m
group by m.PONO,m.ITEM_NAME
)A
Select * from
(
Select distinct m.PONO,m.ITEM_CD,m.ITEM_NAME,a.Total,ROW_NUMBER() OVER (PARTITION BY m.ITEM_NAME ORDER BY m.ITEM_NAME ) AS RN
FROM [Tbl_PO_m] m
inner join #TempA a on a.ITEM_NAME = m.ITEM_NAME
)A
where RN = 1