我有一個SQL查詢,用於顯示在指定日期範圍內按天創建的工單的數量。當我查詢單個日期範圍時(例如2016年3月1日至2016年3月31日),它運行良好。SQL Query根據同一視圖中的不同日期顯示相同的數據
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
可以在同一個表上使用子查詢完成自連接,例如:WorkOrderAlias1.somejoinfield = WorkOrder.somejoinfield'上的INNER JOIN(從WorkOrder中選擇<您的字段列表>)WorkOrderAlias1作爲WorkOrderAlias1。 – fnostro