2016-11-23 6 views
-2

私は1か月あたりのオープンおよびクローズドインシデントの数を数えるためにプロジェクトを進めています。 レコードがあるSQL DBがあります。 私はSQLリクエストを作成して、毎月オープンしたクローズド・インシデントの数をカウントしようとしています。MySql - テーブル内の2つの異なる日付で月別にカウントする

は、これまでのところ、私は事件の数をカウントすることができるよ次のように開かれた:ここで

SELECT 
    YEAR (`startDate`), 
    MONTH (`startDate`), 
    COUNT(id) AS Opened 
FROM 
    incidents 
GROUP BY 
    YEAR (`startDate`), 
    MONTH (`startDate`) 

は私がしましたテーブルのexempleです:

enter image description here

そして結果私は何が必要です。

enter image description here

+0

スタックオーバーフローへようこそ。 [最小限で完全で検証可能なサンプルを作成する方法](http://stackoverflow.com/help/mcve)を参照してください。お試しいただきありがとうございましたコードと具体的な問題をご記入ください。質問内のテキストにデータを再現できる場合は、画像にリンクしないでください。 –

答えて

0

選択MONTHNAME(STARTDATE)、月(STARTDATE)によるテストグループから(MONTH(ENDDATE))カウント、(MONTH(STARTDATE))カウント。

0

下記のクエリをお試しください。あなたの問題を解決しなければならないことを願っています。

SELECT 
    MONTHNAME(start_date) as Month, 
    COUNT(start_date) as CountStartDate, 
    COUNT(end_date) as CountEndDate 
FROM 
    incidents 
GROUP BY 
    MONTHNAME(start_date) 
0

希望します。

SELECT 
    YEAR (`startDate`), 
    MONTH (`endDate`), 
    COUNT(id) AS Opened 
FROM 
    incidents 
WHERE 
    YEAR (`startDate`)= YEAR (`endDate`) 
    MONTH (`startDate`)= MONTH (`endDate`) 
GROUP BY 
    YEAR (`startDate`), 
    MONTH (`endDate`) 
0

これを試してみてください:

SELECT Month(startDate) as Month, COUNT(startDate) as startDate, COUNT(endDate) as countEndDate FROM incidents GROUP BY Month(startDate)

0

これは、あなたが同様に正しい順序で何をしたいあなたを与える必要があります。役に立ったら嬉しいです

SELECT 
    YEAR('startDate'), 
    DATENAME(Month,'startDate'), 
    COUNT(*) 
FROM incidents 
GROUP BY 
    YEAR('startDate'), 
    MONTH('startDate'), 
    DATENAME(Month,'startDate') 
ORDER BY 
    YEAR('startDate'), 
    MONTH('startDate') 
0

これがうまくいけば試してみてください。

CREATE TABLE abcd 
    SELECT 
     sum(if(month(start_date)=1, 1, 0)) s_1, 
     sum(if(month(start_date)=2, 1, 0)) s_2, 
     sum(if(month(start_date)=3, 1, 0)) s_3, 
     sum(if(month(start_date)=4, 1, 0)) s_4, 
     sum(if(month(start_date)=5, 1, 0)) s_5, 
     sum(if(month(start_date)=6, 1, 0)) s_6, 
     sum(if(month(start_date)=7, 1, 0)) s_7, 
     sum(if(month(start_date)=8, 1, 0)) s_8, 
     sum(if(month(start_date)=9, 1, 0)) s_9, 
     sum(if(month(start_date)=10, 1, 0)) s_10, 
     sum(if(month(start_date)=11, 1, 0)) s_11, 
     sum(if(month(start_date)=12, 1, 0)) s_12, 
     sum(if(month(end_date)=1, 1, 0)) e_1, 
     sum(if(month(end_date)=2, 1, 0)) e_2, 
     sum(if(month(end_date)=3, 1, 0)) e_3, 
     sum(if(month(end_date)=4, 1, 0)) e_4, 
     sum(if(month(end_date)=5, 1, 0)) e_5, 
     sum(if(month(end_date)=6, 1, 0)) e_6, 
     sum(if(month(end_date)=7, 1, 0)) e_7, 
     sum(if(month(end_date)=8, 1, 0)) e_8, 
     sum(if(month(end_date)=9, 1, 0)) e_9, 
     sum(if(month(end_date)=10, 1, 0)) e_10, 
     sum(if(month(end_date)=11, 1, 0)) e_11, 
     sum(if(month(end_date)=12, 1, 0)) e_12 
    FROM incidents; 

SELECT s_1 start, e_1 end, 'Jan' month FROM abcd 
UNION SELECT s_2 start, e_2 end, 'Feb' month FROM abcd 
UNION SELECT s_3 start, e_3 end, 'Mar' month FROM abcd 
UNION SELECT s_4 start, e_4 end, 'Apr' month FROM abcd 
UNION SELECT s_5 start, e_5 end, 'May' month FROM abcd 
UNION SELECT s_6 start, e_6 end, 'Jun' month FROM abcd 
UNION SELECT s_7 start, e_7 end, 'Jul' month FROM abcd 
UNION SELECT s_8 start, e_8 end, 'Aug' month FROM abcd 
UNION SELECT s_9 start, e_9 end, 'Sep' month FROM abcd 
UNION SELECT s_10 start, e_10 end, 'Oct' month FROM abcd 
UNION SELECT s_11 start, e_11 end, 'Nov' month FROM abcd 
UNION SELECT s_12 start, e_12 end, 'Dec' month FROM abcd; 

DROP TABLE abcd; 
関連する問題