Я хочу получить одну строку для каждого APP_ID, но я выбираю Operating_System в операторе case, что означает, что для одного и того же APP_ID возвращаются 3 строки.
SELECT DISTINCT [APP_ID], [APP_NAME], [BATCH_ID], [Start_Date],
CASE
WHEN [Operating_System] LIKE '%Windows%'
then COUNT([HOSTNAME])
ELSE ''
END AS 'Windows',
CASE
WHEN [server_pam_Operating_System] LIKE '%Linux%'
then COUNT([HOSTNAME])
ELSE ''
END AS 'Linux'
FROM [dbo].[table a]
WHERE [APP_ID] = 'APP-99'
GROUP BY [APP_ID], [APP_NAME], [BATCH_ID], [Start_Date]
Фактические результаты:
APP_ID APP_NAME BATCH_ID Start_Date Windows Linux
APP-99 APS to define to define 0 49
APP-99 APS to define to define 3 0
APP-99 APS to define to define 7 0
Ожидаемые результаты:
APP_ID APP_NAME BATCH_ID Start_Date Windows Linux
APP-99 APS to define to define 10 49