sql 存储过程中合并2条行的数据解决方案
sql 存储过程中合并2条行的数据
表Test 字段(ID主键,WZMC,ShuLiang) 表中数据不止这两条数据,主要的用处是查询表中数据做个排行的,其中NO为自己as的,
例如: NO WZMC ShuLiang
1 鼠标 500
2 鼠标 200
合并后: NO WZMC ShuLiang
1 鼠标 700
我已写好的存储过程:
SELECT ROW_NUMBER() OVER (ORDER BY ShuLiang DESC) AS NO,WZMC,SUM(ShuLiang)AS ShuLiang FROM dbo.Test where 1=1
麻烦各位大虾在这基础上帮我改下,谢啦
------解决方案--------------------
聚合函数 + groupby 不就可以了吗?
------解决方案--------------------
你给的是语句,不是存储过程
语句给你改了一下。
表Test 字段(ID主键,WZMC,ShuLiang) 表中数据不止这两条数据,主要的用处是查询表中数据做个排行的,其中NO为自己as的,
例如: NO WZMC ShuLiang
1 鼠标 500
2 鼠标 200
合并后: NO WZMC ShuLiang
1 鼠标 700
我已写好的存储过程:
SELECT ROW_NUMBER() OVER (ORDER BY ShuLiang DESC) AS NO,WZMC,SUM(ShuLiang)AS ShuLiang FROM dbo.Test where 1=1
麻烦各位大虾在这基础上帮我改下,谢啦
------解决方案--------------------
聚合函数 + groupby 不就可以了吗?
------解决方案--------------------
你给的是语句,不是存储过程
语句给你改了一下。
- SQL code
IF EXISTS (SELECT 1 FROM SYSOBJECTS WHERE name = 'tba') BEGIN DROP TABLE tba END GO CREATE TABLE tba ( NO INT, WZMC VARCHAR(10), ShuLiang INT ) GO INSERT INTO tba SELECT 1, '鼠标', 500 UNION SELECT 2, '鼠标', 200 SELECT NO=ROW_NUMBER() OVER (ORDER BY A.shuliang), A.* FROM (SELECT WZMC,SUM(ShuLiang) AS shuliang FROM tba GROUP BY WZMC) AS A