我有6个供应商“库存”数据库,我已与主数据库匹配/不匹配。如果在主数据库中找到了唯一ID,我们会在我们创建的名为Status的列中添加“匹配”一词。如果主服务器没有匹配的唯一ID,我们会在“状态”列中显示“无匹配”。我们已为每个供应商库存数据库执行此操作。我想保持一个“匹配”和“不匹配”的唯一ID数量的运行计数,以便快速浏览。
例如:
结合所有6个库存数据库的结果:
库存总数:20000
'匹配'总数:14000
'不匹配'总数:6000
答案 0 :(得分:0)
这可能不是最好的方式,也不是经过测试,但这就是我想出来的。
SELECT SUM(1) AS inventory_total,
SUM(CASE status WHEN 'Match' THEN 1 ELSE 0 END) AS match_total,
SUM(CASE status WHEN 'No Match' THEN 1 ELSE 0 END) AS no_match_total
FROM tbl
WHERE tbl_id IN (
SELECT MAX(tbl_id)
FROM tbl
GROUP BY fkey_id
);
我不完全确定这是不是你想要的,但我希望它有所帮助。
答案 1 :(得分:0)
这会有用吗?
SELECT
COUNT(*) AS InventoryTotal,
SUM(CASE WHEN STATUS = 'Match' THEN 1 ELSE 0 END) AS MatchTotal,
SUM(CASE WHEN STATUS = 'No Match' THEN 1 ELSE 0 END) AS NoMatchTotal
FROM
Table
答案 2 :(得分:0)
SELECT COUNT(*) as [inventory total],
SUM(CASE status WHEN 'Match' THEN 1 ELSE 0 END) AS [match total]
SUM(CASE status WHEN 'No Match' THEN 1 ELSE 0 END) AS [no match total]
FROM db1.table UNION ALL db2.table UNION ALL db3.table
UNION ALL db4.table UNION ALL db5.table UNION ALL db6.table
如果我理解正确的话......