1

以下の記述を訂正してください。前もって感謝します。

SELECT CATEGORY
--WHAT PERIOD?
,'P3' AS PERIOD
,'2013' AS FISCALYEAR        
,COUNT(CASE SecurityLayer WHEN 'dblayer' THEN SecurityLayer ELSE '' END) DB_SEC_COUNT         
,COUNT(CASE SecurityLayer WHEN 'Applayer' THEN SecurityLayer ELSE '' END) APP_SEC_COUNT  
FROM [db_eCAM].[dbo].[tbl_SecChecks]  
GROUP BY CATEGORY
4

2 に答える 2

2

それらのそれぞれが一致する回数を返そうとしていますか? 次に使用します

SELECT CATEGORY
--WHAT PERIOD?
,'P3' AS PERIOD
,'2013' AS FISCALYEAR  
,SUM(CASE SecurityLayer WHEN 'dblayer' then 1 else 0 end) AS DB_SEC_COUNT
,SUM(CASE SecurityLayer WHEN 'Applayer' then 1 else 0 end) AS APP_SEC_COUNT
FROM [db_eCAM].[dbo].[tbl_SecChecks]  
GROUP BY CATEGORY

それを試してみてください。

于 2012-04-20T19:50:38.613 に答える
2

列を数える代わりに合計してみてください (そうしないと、値に関係なく各行がカウントされます):

SELECT CATEGORY
--WHAT PERIOD?
,'P3' AS PERIOD
,'2013' AS FISCALYEAR        
,SUM(CASE SecurityLayer WHEN 'dblayer' THEN 1 ELSE 0 END) DB_SEC_COUNT         
,SUM(CASE SecurityLayer WHEN 'Applayer' THEN 1 ELSE 0 END) APP_SEC_COUNT  
FROM [db_eCAM].[dbo].[tbl_SecChecks]  
GROUP BY CATEGORY
于 2012-04-20T19:51:09.507 に答える