我有以下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
符合以下条件:
对于每个EVENTDETAILID
,SUM
每行pricetype
为0,并且每EVENTDETAILID
个pricetype的每行为1,然后只添加一次。
对于上面的示例,所需的输出将是:
eventDetailId = 1
eventDetailsId = 2
我已经尝试了以下操作,但没有按预期工作,因为如果PRICE
为1,我只能添加PRICETYPE
一次:
SELECT
SUM(PRICE)
FROM
ReservationDetails
GROUP BY
eventDetail_id
答案 0 :(得分:3)
您可以将其标记为对事件详细信息ID的聚合(GROUP BY
)查询。当详细ID为0时,总和可以分为条件总和,当详细ID为1时,可以将其与最大价格相结合。因为您告诉我们{{1时价格总是相同的因此,我们可以选择任何单个值。
PRICETYPE=1