我正在尝试获取服务器和客户端上安装的每个软件的计数。当我运行第一个查询时,我返回了 4000 多行。
SELECT a.DisplayName0,c.Name0 FROM v_GS_ADD_REMOVE_PROGRAMS a, v_R_System c
WHERE A.DisplayName0 NOT LIKE 'hotfix for%'
AND A.DisplayName0 LIKE 'CCC Help Norwegian%'
GROUP BY c.Name0, A.DisplayName0
ORDER BY c.Name0
当我运行此查询以便我只能获取计数而不显示每个客户端名称时,当它应该超过 4000 时,它只有 25 的计数。
SELECT COUNT(*), a.DisplayName0,c.Name0 FROM v_GS_ADD_REMOVE_PROGRAMS a, v_R_System c
WHERE A.DisplayName0 NOT LIKE 'hotfix for%'
AND A.DisplayName0 LIKE 'CCC Help Norwegian%'
GROUP BY c.Name0, A.DisplayName0
ORDER BY c.Name0
知道可能出了什么问题吗?蒂亚
您似乎正在交叉连接两个表。 您可能需要使用内部联接。我不知道两个表中的公共列是什么,但您的解决方案最终将如下所示:
SELECT COUNT(*), a.DisplayName0,c.Name0
FROM v_GS_ADD_REMOVE_PROGRAMS a
INNER JOIN v_R_System c
ON c.<some column> = a.<some column>
WHERE A.DisplayName0 NOT LIKE 'hotfix for%'
AND A.DisplayName0 LIKE 'CCC Help Norwegian%'
GROUP BY c.Name0, A.DisplayName0
ORDER BY c.Name0