我有一个数据表,我想制作一个WHERE子句,其中有两个不同的限制适用于同一个变量。我不知道如何应用它。
这是我目前的表格(减去我的目标的摘要栏目)
ID Location Price PriceDescription SummedCost Summary
1 Park -10 Cost.Water -18 -7
1 Park -8 Cost.Gas
1 Park 11 Sold.Price
2 Tom 20 Sold.Price -6 14
2 Tom -6 Cost.Soap
3 Matt -15 Cost.Tools -30 -9
3 Matt -15 Cost.Gas
3 Matt 21 Sold.Price
4 College 32 Sold.Price -22 21
4 College -22 Cost.Water
4 College 11 Sold.LateFee
我的代码是
SELECT ID
,Location
,Price
,PriceDescription
,SUM(Price) over(Partition by Location) AS SummedCost
FROM
table
WHERE
PriceDescription LIKE 'Cost.%'
这就是我遇到问题的地方。我想要汇总所有价格的汇总列,但我不知道如何写一个WHERE语句,说明SummedCost列的PriceDescription LIKE'Cost。%'和PriceDescription LIKE'%。%'摘要栏。
这可能吗?我尝试将WHERE PriceDescription LIKE '%.%'
添加到SUM(Price) over(Partition by Location) AS SummedCost
,但我收到了关于'as'的错误。
感谢您的帮助!
答案 0 :(得分:1)
删除WHERE
子句,并在CASE
中使用SUM()
表达式:
SELECT ID
,Location
,Price
,PriceDescription
,SUM(Case When PriceDescription Like 'Cost.%'
Then Price
Else 0
End) Over(Partition by Location) AS SummedCost
,SUM(Price) Over(Partition by Location) As Summary
FROM table
答案 1 :(得分:0)
您可以使用以下案例:
,SUM(case when PriceDescription like 'Cost.%' then Price else 0 end) over(Partition by Location) AS SummedCost