私は、指定した日付範囲内で1日に作成された作業オーダーの数を表示するために使用するSQLクエリを使用しています。これは、3/1/2016から3/31/2016など、1つの日付範囲をクエリするとうまくいきます。SQL同じデータを表示するが、同じビュー内の異なる日付に基づくクエリ
SELECT DATEADD(dd, DATEDIFF(dd, 0, dateCreated), 0) the_date,
COUNT(*) work_order_count
FROM WorkOrder
where active = 1 and
dateCreated >= '3/1/2016' and
dateCreated <= '3/31/2016 23:59:59'
GROUP BY DATEADD(dd, DATEDIFF(dd, 0, dateCreated), 0)
order by 1;
同じデータをクエリできますが、複数の日付範囲の結果を表示できるように、この同じクエリをさらに進めていきたいと思います。私の特定の目的は、前年比較のためにデータを並べて表示することです。理想的には、2014年、2015年および2016年に3/1-3/31のために作成された作業オーダーの数を、同じビュー/結果内に表示することが理想的です。
これは可能ですか?私は結合を調べましたが、同じテーブルではなく異なるテーブルを使用しているときに表示されます。
は、ストアドプロシージャを作成します開始日と終了日をパラメータとして受け取るクリエイティブをどのように手に入れたいかによって、sqlの 'dateadd()'関数で簡単な日付計算を行うことで、3つのデータセットを簡単に返すことができます。 – fnostro
セルフ・ジョインは、同じ表のサブクエリを使用して行うことができます。例: 'INNER JOIN(<あなたの日付基準>をWorkOrderの<フィールド・リストを選択>)をWorkOrderAlias1.somejoinfield = WorkOrder.somejoinfield'のWorkOrderAlias1として選択します – fnostro