表tb里有如下内容单号 姓名 金额01 张小姐 10
01 张小姐 20
01 张小姐 3002 李小姐 30
02 李小姐 40
02 李小姐 1003 任小姐 15
03 任小姐 40
03 任小姐 10想这样输出:
统计单号相同的金额
然后输出不重复的单号和统计的金额输出效果如下
单号 姓名 金额
01 张小姐 60
02 李小姐 80
03 任小姐 65
解决方案 »
- sql2005能否装在xp系统上?
- VC与数据库开发初学者急求帮助!
- 机子上原有SQLSERVER2000,现在装了个SQLSERVER2005SP2,每次开机时!
- 怎样取得不同物资、最迟日期的那条记录
- 网上商城数据库商品分类
- 请问下面题目怎样解?
- DTS包设计中使用了A,B两个连接器,执行一种查询任务,请问》》》》
- 我想连接sql server网络服务器,可是服务器所在的ip地址PING不通,是哪里的问题,是不是我要另外安装什么软件才可以PING通?
- 数据类型转换char to hex???
- 如何解决SQLSERVER中的:"Timeout expire."
- SQL 基础没找着教程,知道的大哥帮忙看一下
- MS SQL 问题 数据类型转换失败
FROM tb
GROUP BY 单号, 姓名
from tb
group by 单号 ,姓名
(
单号 VARCHAR(10),
姓名 NVARCHAR(10),
金额 INT
)
INSERT #temp
select '01', N'张小姐', 10 union all
select '01', N'张小姐', 20 union all
select '01', N'张小姐', 30 union all
select '02', N'李小姐', 30 union all
select '02', N'李小姐', 40 union all
select '02', N'李小姐', 10 union all
select '03', N'任小姐', 15 union all
select '03', N'任小姐', 40 union all
select '03', N'任小姐', 10
GO
--SQL1:
SELECT 单号, 姓名, 金额 = SUM(金额)
FROM #temp
GROUP BY 单号, 姓名
ORDER BY 单号
--SQL2:
SELECT DISTINCT
单号,
姓名,
金额 = SUM(金额) OVER(PARTITION BY 单号, 姓名)
FROM #temp
/*
单号 姓名 金额
---------- ---------- -----------
01 张小姐 60
02 李小姐 80
03 任小姐 65
*/