条件SUM不返回任何值

时间:2014-12-02 21:58:48

标签: sql sqlite spiceworks

编写SQL查询以从spiceworks中获取设备数量。 我需要获取设备类型,模型,正在使用的数量以及未分配的数量。

目前未分配的任何内容都标记为已停用。 所以我有以下查询

  SELECT `device_type` AS "Device",
    `model` AS "Model",
    SUM (CASE WHEN `user_tag` NOT LIKE "%decommissioned%" THEN 1 ELSE 0 END) AS "Assigned",
    SUM (CASE WHEN `user_tag` LIKE "%decommissioned%" THEN 1 ELSE 0 END) AS "Avail."
  FROM `devices`
  WHERE `auto_tag` LIKE "%LA2%" OR `user_tag` LIKE "%LA2%" OR `location` LIKE "%LA2%"
  Group by `device_type`, `model`​

EG:如果标记为退役计数为1朝向可用,否则计为1朝向指定。

我当前的问题是第二个SUM操作没有返回任何数据。甚至不是0。 我确定它很简单,但我很遗憾。

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

SpiceWorks扼杀了查询的格式。 从列名称周围删除了后面的刻度,用单引号替换了双引号。

按预期工作。

谢谢大家的帮助。

SELECT 
  device_type
  , model
  , COUNT(CASE WHEN user_tag NOT LIKE '%decommissioned%' THEN 1 ELSE NULL END) as 'Assigned'
  , COUNT(CASE WHEN user_tag LIKE '%decommissioned%' THEN 1 ELSE NULL END) as 'Avail'
  , COUNT(*) as 'TotalItems'
FROM devices
WHERE auto_tag LIKE '%LA2%' OR user_tag LIKE '%LA2%' OR location LIKE '%LA2%'
GROUP BY model, device_type
ORDER BY location DESC, device_type ASC​
相关问题