使用聚合函数

时间:2016-12-08 14:45:01

标签: sql-server

我编写了一个查询,返回所有曾与我所在公司进行过购买的客户的列表。我获取数据的人想知道这些订单中是否有特定标准。

 select L.ParentLocation, 
 [Number of Orders] = count(distinct(T.Order))
 from Table1 L
 join Table2 T
 on L.Location = T.Location
 group by L.ParentLocation

然而,问题很复杂,因为我已经通过ParentLocation进行分组,并且每个ParentLocation都有许多正常的位置。所以我在计算位置级别的唯一订单数量,然后按ParentLocation对它们进行分组。

我想回归' TRUE'在查询中是否有字段' OrderDesc'包含"玩具"在ParentLocation拥有的任何地点的任何订单中。有没有办法做到这一点?

注意:Table2包含OrderDesc列。

感谢阅读!

1 个答案:

答案 0 :(得分:1)

select
    L.ParentLocation, 
    [Number of Orders] = count(distinct(T.Order)),
    has_toys = max(case when t.OrderDesc like '%toys%' then 'TRUE' else '' end)
from Table1 L
inner join Table2 T
   on L.Location = T.Location
group by
      L.ParentLocation