2017-09-29 9 views
1

から複数のカウントを選択します。データの10行のステータス、CreateDateTimeとケースタイプSQLは、私は次の列とSQL内の1つのテーブルがあり、同じ列

例は以下のようになります。

Resolved-Withdrawn 2017-08-28 10:20:58.820 Termination Quote DE 
    Pending-Customer 2017-08-28 10:44:37.987 Termination Quote DE 
    Pending-Customer 2017-08-28 10:44:39.953 Termination Quote DE 
    Pending-Customer 2017-08-28 10:51:55.643 Termination Quote DE 
    Pending-Customer 2017-08-28 10:51:56.513 Termination Quote DE 
    Pending-Customer 2017-08-28 10:54:20.160 Termination Quote DE 
    Pending-Customer 2017-08-28 10:54:20.747 Termination Quote DE 
    Pending-Customer 2017-09-10 06:12:52.113 Termination Quote DE 
    Pending-Customer 2017-09-15 12:34:32.657 Termination Quote DE 

私は以下を達成したいと思います:

Status    Total_August  Total_September 
    ----------------------------------------------------- 
    Resolved-Withdrawn 1    0 
    Pending-Customer  6    2 

SQL内でこのクエリを作成するにはどうすればよいですか?

私の最初のアイデアは、(これは明らかにうまくいかない)このようなものですが、経験のないユーザーとして考えプロセスをよりよく理解できるかもしれません。

SELECT Status, COUNT(pxCreateDateTime) as Total_August, COUNT(pxCreateDateTime) as Total_September 
    FROM ContractMgtWork 
    WHERE MONTH(pxCreateDateTime) = 8 and YEAR(pxCreateDateTime) = 2017 AND 
    CaseType = 'Amortization Schedule DE' 
    GROUP BY Status 

答えて

1

count、他の多くの集計関数と同様、null Sをスキップします。 case式を数えたいと思っていても、このプロパティを利用することができます:

SELECT Status, 
     COUNT(CASE WHEN MONTH(pxCreateDateTime) = 8 THEN 1 END) AS Total_August, 
     COUNT(CASE WHEN MONTH(pxCreateDateTime) = 9 THEN 1 END) AS Total_September 
FROM  ContractMgtWork 
WHERE YEAR(pxCreateDateTime) = 2017 AND 
     CaseType = 'Amortization Schedule DE' 
GROUP BY Status 
+0

これは私が欲しいものでした、ありがとう – R100

関連する問題