sql - 如何在存储过程中使用名称求和和分组?

标签 sql sql-server sql-server-2008 stored-procedures

我想对金钱列求和,但我想要状态中的组名和代码。

这是存储过程代码[Sql Server 2008]:

SELECT um.upmoney as 'money'
,um.pId as 'code',um.FName as 'name',up.status as 'statusmoney'
From tb_upmoney um inner join tb_pID up on up.uId=um.pId

结果:

money | code | name | statusmoney
200.00 | 00001 | fin | 1
100.00 | 00001 | fin | 1
50.00 | 00001 | fin | 1
100.00 | 00002 | welson | 1
200.00 | 00002 | welson | 2
100.00 | 00002 | welson | 2
50.00 | 00002 | welson | 2
0.00 | 00002 | welson | 2

但我想要:

money | code | name | statusmoney
250.00 | 00001 | fin | 1
100.00 | 00002 | welson | 1
250.00 | 00002 | welson | 2

最佳答案

您需要像这样SUM(UM.upmoney) 并对剩余字段进行分组:

SELECT SUM(um.upmoney) AS 'money',
       um.pId AS 'code',
       um.FName AS 'name',
       up.status AS 'statusmoney'
FROM tb_upmoney um 
    INNER JOIN tb_pID up 
    ON up.uId=um.pId
GROUP BY um.pId, um.FName, up.status

参见 GROUP BY clause with an aggregator 'SUM()' 的示例

关于sql - 如何在存储过程中使用名称求和和分组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11980704/

相关文章:

sql-server - 我可以使用部署后脚本更改现有表架构吗?

sql - 月度和年度明智的报告

mysql - SQL-Server-2008 中的正则表达式

mysql - 如何在 MySQL 中限制仅显示 2 行相同的值

sql - 无法使用 pyodbc 将 Sqlalchemy 连接到 SQL Server 2000

MYSQL DISTINCT 关键字不起作用

sql-server - WHERE跨越2个表的SQL Server UPDATE

SQL - 使用别名对值进行分组

c# - 对 Sql Server 中的索引感到困惑

sql-server - 如何确定插入时哪一列引发算术溢出错误?