1

编写 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。我确定它是我缺少的一些简单的东西。

在此先感谢您的帮助。

4

1 回答 1

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​
于 2014-12-03T20:48:04.433 回答