SQL Количество установленных программ не возвращается правильно
Я пытаюсь получить подсчет каждого программного обеспечения, установленного на серверах и клиентах. Когда я запускаю первый запрос, я получаю более 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
Когда я запускаю этот запрос, чтобы я мог просто получить счетчик и не отображать имя каждого клиента, он имеет счетчик только 25, когда он должен быть больше 4000.
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
Есть идеи, что может быть не так? ТИА
1 ответ
Решение
Похоже, вы перекрестно соединяете два стола. Вы, вероятно, должны будете использовать INNER JOIN. Я не знаю, каков общий столбец в обеих таблицах, но ваше решение будет выглядеть примерно так:
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