34,587
社区成员
发帖
与我相关
我的任务
分享
--模拟数据
declare @temp table(spromoid varchar(50),value varchar(50),goods varchar(50))
insert into @temp
select 'pgz0001013','B004','123456' UNION ALL
select 'pgz0001014','B007','123456' UNION ALL
select 'pgz0001018','B007','123456'
--第一步,将查询的结果按店铺及货号分组,按调价单号倒序
Select ROW_NUMBER() OVER (Partition By value,goods order by spromoid desc) as No,* from @temp
--第二步
SELECT * FROM (Select ROW_NUMBER() OVER (Partition By value,goods order by spromoid desc) as No,* from @temp) A
WHERE No=1
SELECT MAX(se.spromoid) AS 调价单号,
sc.[value] AS 店铺,
st.goods_no AS 货号 /*,st.unitprice as 当前零售价*/
FROM SPromoEx se
LEFT JOIN SPromoExCustomer sc ON sc.spromoid = se.spromoid
LEFT JOIN SPromoExSpType7 st ON st.spromoid = se.spromoid
LEFT JOIN goods g ON g.goods_no = st.goods_no
WHERE 1 = 1 AND g.brand = 'BOSSSUNWEN' AND se.cancel = '0'
GROUP BY st.goods_no,
sc.[value]
ORDER BY st.goods_no,
sc.[value] DESC;
;with cte1
as (
select se.spromoid,sc.[value],st.goods_no/*,st.unitprice as 当前零售价*/
from SPromoEx se
left join SPromoExCustomer sc on sc.spromoid=se.spromoid
left join SPromoExSpType7 st on st.spromoid=se.spromoid
left join goods g on g.goods_no=st.goods_no
where 1=1 AND g.brand='BOSSSUNWEN' and se.cancel='0'
GROUP BY st.goods_no,sc.[value],se.spromoid/*,st.unitprice*/,st.goods_no
),
cte2 as (
Select Row_ID=ROW_NUMBER() OVER (Partition By [value],goods_no Order By spromoid desc),*
From cte1 )
Select spromoid as 调价单号,[value] as 店铺,goods_no as 货号
From cte2
Where Row_ID=1
ORDER BY goods_no,[value],spromoid desc