日期:2014-05-18  浏览次数:20525 次

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 不就可以了吗?

------解决方案--------------------
你给的是语句,不是存储过程
语句给你改了一下。
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