個々の顧客のインシデント ログ データベースに対していくつかのクエリを実行しています。私が返したいのは、2012 年のすべての月の名前と、未解決のインシデントの数です。これは、12 か月以上ご利用いただいているお客様には問題ありませんが、ご利用期間が短いお客様には適していません。
私が持っているクエリはこれです:
SELECT DATE_FORMAT(FROM_UNIXTIME(createdtime/1000), '%Y') as 'Year',
DATE_FORMAT(FROM_UNIXTIME(createdtime/1000), '%M') as 'Month',
count(wo.workorderid) as 'Total Logged'
FROM workorder_threaded wot
inner join workorder wo
on wo.workorderid = wot.workorderid
and wo.siteid = 4806
and DATE_FORMAT(FROM_UNIXTIME(createdtime/1000), '%Y') <> '2011'
where wot.workorderid = wot.thd_woid
GROUP BY DATE_FORMAT(FROM_UNIXTIME(createdtime/1000), '%Y%m')
私が得る出力はこれです:
Year Month Total Logged
2012 August 3
2012 September 356
2012 October 212
2012 November 120
ただし、次のものが必要です。
Year Month Total Logged
2012 January 0
2012 February 0
2012 March 0
2012 April 0
2012 May 0
2012 June 0
2012 July 0
2012 August 3
2012 September 356
2012 October 212
2012 November 120
2012 December 0
年によって制限する必要はありません。つまり、コール ログ DB には 2011 年からのデータが含まれているため、クエリを変更して年の範囲をフィルター処理できます。
データが存在しないため、これが入力されていないことはわかっています。数値\日付テーブルを作成し、これを参照して日付を入力する方法を見てきましたが、これを行うのに苦労しています。また、結合や場所の条件を変更して無駄にしました。
前もって感謝します。