34,590
社区成员
发帖
与我相关
我的任务
分享
select top(7) bianhaoid shuju = sum(shuju)
from b
group by bianhaoid
order by bianhaoid asc
select
distinct b.*
from
tb a
caoss apply
(select top 7 * from tb where convert(varchar(10),日期,120)=convert(varchar(10),t.日期,120) order by 日期desc)b
select * from
(select no=row_number() over(partition by bianhaoid,
convert(varchar(10),日期,120) order by sum(shuju)),bianhaoid,shuju = sum(shuju)
from b
group by bianhaoid,convert(varchar(10),日期,120)) t
where no<8
建议你提供详细的资料:
例如表的结构,表之间的关系,测试数据,相关算法及需要的结果。
这样有助于我们理解你的意思,更主要的是能尽快让你获得答案或解决问题的方法。
select
distinct b.*
from
tb a
cross apply
(select top 7 * from tb where convert(varchar(10),日期,120)=convert(varchar(10),t.日期,120) order by 日期desc)b
SELECT bianhaoid,CONVERT(varchar(10),日期,120), shuju = sum(shuju)
FROM
(SELECT *,row=ROW_NUMBER()OVER(PARTITION BY bianhaoid,CONVERT(varchar(10),日期,120) ORDER BY 日期 asc) FROM b )t--這里order by 為取的順序
WHERE row<=7
GROUP BY bianhaoid,CONVERT(varchar(10),日期,120)