SQL Server:如何为每个客户ID划分总和的结果

时间:2016-05-01 19:26:26

标签: sql sql-server

我有4个这样的表(你可以忽略表B,因为这个问题没有使用那个表)

enter image description here

我想在表'sales_detail'中显示每个'sales_id'的总计'总和'

我想要的(结果)是这样的:

sales_id | total
S01 | 3
S02 | 2
S03 | 4
S04 | 1
S05 | 2
S05 | 3

我尝试过这个查询:

select 
    sum(total) 
from 
    sales_detail 
where 
    sales_id = any (select sales_id 
                    from sales 
                    where customer_id = any (select customer_id 
                                             from customer) 
                   )

但查询返回的值为15,因为它们是这些数据行的总和。

我试图在和之前使用“distinct”

,结果是[1,2,3],因为它们与那些数据行不同(不是每个sales_id的总和)

关于子查询的全部内容

1 个答案:

答案 0 :(得分:2)

你只是偏离轨道,一个简单的评论将无济于事。您的查询仅涉及一个表,sales_detail。它与其他两个无关。

而且,它只是一个聚合查询:

select sd.sales_id, sum(sd.total)
from sales_detail sd
group by sd.sales_id;

这实际上非常接近问题本身所要求的内容。