私は次のものを持っています
WorkflowID FK_UA DateApprobation
----------- -------------------- -----------------------
1 3 NULL
2 1 NULL
3 1 NULL
4 2 2013-05-31 09:22:33.000
私がやろうとしているのは、たくさんの集計フィールドを取得することです。
承認されたワークフロー、承認されていないワークフロー、すべてのワークフローを取得したい
私が知っている方法は、「DateApprobation」フィールドが null であるか、値があるかどうかです。
問題は、「FK_UA」でグループ化できるようにしたいので、group by 句で 3 つの集計関数 (COUNT) を使用する方法がわかりません。
それを達成できるクエリを探しています。見つけた同様のケースをいくつか試しましたが、奇妙な値が返されました。
私はこれを試しました:
SELECT
FK_UA
,COUNT(WorkflowID) AS TOTAL
,COUNT(CASE when DateApprobation is not null then 1 else 0 end) AS APPROVED
,COUNT(CASE when DateApprobation is null then 1 else 0 end) AS NOT_APPROVED
FROM Workflow
GROUP BY
FK_UA
ただし、3 つの値すべてに対して常に同じものを返します。