2011-08-23 95 views
1

在嘗試生產票的狀態隨着時間的看法,我碰到的幾個挑戰:按月查詢分組狀態的SQL查詢。修正系統

背景:

含票記錄的數據庫設置爲允許基本的重新遠景規劃,幷包括以下各列(這是我認爲相關):

ID - - 狀態 - DATE_CREATED - 修改

期望解:

包含以下內容的表格:按周/月/年分組的每個狀態的計數。

挑戰:

排除狀態未發生變化的任何修訂。提前的任何援助

謝謝,這是白熱化我的大腦:)

+1

感謝這麼多的幫助!這是似乎已經工作的解決方案: 'SELECT COUNT(t1.status),month(t1.date_modified),year(t1.date_modified),week(t1.date_modified),t1.status FROM trends as t1 JOIN趨勢爲t2 ON(t1.original = t2.ID) WHERE t1.status!= t2.status GROUP BY MONTH(date_modified),status;' – Slukehart

回答

3

應該是這樣的(不分組按日期):

SELECT t1.* 
FROM table as t1 
JOIN table as t2 ON (t1.original = t2.ID) 
WHERE t1.status != t2.status; 
+1

我沒有足夠的聲望投票,但我希望我做:)感謝您的時間! – Slukehart

0

EXISTS/NOT EXISTS的子查詢應該是你在找什麼。

+1

只是爲了幫助我理解該函數如何應用於此問題你提供更多的細節? (不時間敏感:) – Slukehart

+0

我想我誤解了你的問題:) 基本上 - 'EXISTS()'是一個函數用在'WHERE'子句中,將子查詢(SELECT ...)作爲參數並返回TRUE返回任何行。在簡單情況下,它的執行速度與進行類似工作的連接速度相同(並且可以更易讀且更易於編寫),有時會更慢。 – Crack