条件满足时的SUM值

时间:2018-06-08 11:07:40

标签: sql-server

我有以下SQL Server表,其中包含以下数据:

PRICE(decimal 9,2)   PRICETYPE(int)     EVENTDETAILID (int)

PRICE          PRICETYPE          EVENTDETAILID
------------------------------------------------
99                 1                    1
99                 1                    1
99                 1                    1
15                 0                    1
15                 0                    1
50                 1                    2
50                 1                    2

我希望SUM结果PRICE符合以下条件:

对于每个EVENTDETAILIDSUM每行pricetype为0,并且每EVENTDETAILID个pricetype的每行为1,然后只添加一次。

对于上面的示例,所需的输出将是:

  • 99 + 15 + 15 eventDetailId = 1
  • 50 eventDetailsId = 2

我已经尝试了以下操作,但没有按预期工作,因为如果PRICE为1,我只能添加PRICETYPE一次:

SELECT 
    SUM(PRICE) 
FROM 
    ReservationDetails 
GROUP BY 
    eventDetail_id

1 个答案:

答案 0 :(得分:3)

您可以将其标记为对事件详细信息ID的聚合(GROUP BY)查询。当详细ID为0时,总和可以分为条件总和,当详细ID为1时,可以将其与最大价格相结合。因为您告诉我们{{1时价格总是相同的因此,我们可以选择任何单个值。

PRICETYPE=1

enter image description here

Demo