条件求和T-SQL

时间:2013-09-30 11:53:20

标签: sql sql-server tsql crystal-reports

这是一个非常简单的问题,我知道它是。但是不能为我的生活弄明白。

我有一些颜色,但主要的是ReservationFee和Invoice ID。

基本上,单个发票中可以有多个“ReservationFees”。此值将被放在水晶报告中,因此我理想地需要总结每个发票ID的预订费用。

示例数据

Invoice ID     Reservation Fee
1              200
1              300
2              100
3              350
3              100

预期输出

Invoice ID     Reservation Fee
1              500
2              100
3              450

我尝试了几个不同的总和和分组,但无法做到正确,我在星期一早上责备!

4 个答案:

答案 0 :(得分:1)

如果您想在服务器中使用SUM,那么:

SELECT [Invoice ID],
       SUM([Reservation Fee]) 
FROM Table 
GROUP BY [Invoice ID]

如果要在Crystal中使用SUM,请添加command或拖放表

SELECT [Invoice ID], 
       [Reservation Fee]
FROM Table

然后右键点击details section并选择Insert Group

在详细信息部分添加字段,右键单击Reservation Fee字段,然后选择插入运行总计。

在窗口中选择一个名称,为每一行选择评估,然后在更改组时重置您之前输入的名称。

将新创建的字段放在Group Footer

答案 1 :(得分:0)

尝试GROUP BY子句:

Select
    [Invoice ID],
    SUM([Reservation Fee]) [Reservation Fee]
From
    YourTable
GROUP BY [Invoice ID]

答案 2 :(得分:0)

出了什么问题:

SELECT [Invoice Id], SUM([Reservation Fee]) AS [Reservation Fee]
FROM   dbo.YourTable
GROUP BY [Invoice Id]

答案 3 :(得分:0)

尝试这个。

declare @Invoice_table table 
(
Invoice_ID int ,     
Reservation_Fee money
)
insert into @Invoice_table values
(1              ,200),
(1              ,300),
(2              ,100),
(3              ,350),
(3              ,100)

SELECT SUM (Reservation_Fee) as Reservation_Fee, Invoice_ID from @Invoice_table group by Invoice_ID