我的选择查询需要帮助。我希望有3个条件取决于sum(sd.Price * sd.Quantity)
。比如,如果sum介于0-100种类型之间,则介于100-200种类型之间,或者更大,然后是200种类型,然后类型为SaleState
虚拟列。
我们当然可以解决这个问题,但我想要的是,在这个选择查询中进行。我知道这是可行的,我只是不记得(我之前做过)并且在我的搜索中无法找到解决方案。
我的数据表是:
Products
(ProductID,ProductName,ProductPrice)Sales Details
(SaleID,ProductID,ProductPrice,Quantity)查询:
select
p.ProductName, sum(sd.Price*sd.Quantity) as Total,
(select 'good' where Total > 100) as SaleState
-- We need something here that haves 3 condition.
from
Products p
left join
[Sales Details] sd on p.ProductID = sd.ProductID
group by
p.ProductName
答案 0 :(得分:2)
select
productname, total,
case when total < 100 then 'Bad'
when total >= 100 and total < 200 then 'OK'
when total > 200 then 'Good'
end as salestate
from
(
select
p.ProductName, sum(sd.Price*sd.Quantity) as Total
from Products p
left join [Sales Details] sd on p.ProductID = sd.ProductID
group by p.ProductName
) t
您可以使用case
语句根据查询中的sum
分配值。