2012-12-13 105 views
1

你好,我是一個新手,當涉及到SQL,請容忍我。SQL查詢查找最近3個月的記錄

所以我有兩個表一個是Transaction表和另一個是Category表。

Transaction表包括交易信息,其中包括:

date, description, amount, category_id 

此表將持有的所有交易。

Category表包括:categoryId , name

分類例如會像「娛樂」,「購物」,「食品」,...等)

我想要做的是。能夠檢查過去3個月中每個月發生的所有類別的交易,並返回這些類別。

例如:

如果我跑這個查詢今日(12月)和我們說,有跡象表明發生了九月(2012年8月3日),10月裏「購物」的交易(9/9/2012)和11月(10/15/2012)查詢應該返回「購物」,因爲在過去3個月購物交易發生。

只要過去3個月中每個類別都有過去的交易,查詢就可以返回多個類別。我希望我有道理。

任何有用的建議或例子,將不勝感激。

感謝, 東盟

+1

MySQL或MSSQL? – sicKo

回答

0

這些SQL沒有進行測試。剛剛創建它的飛行..

MSSQL

SELECT Category.name FROM Category INNER JOIN Transaction ON Category.categoryId = Transaction .category_id where DATEDIFF(mm,Transaction.date, Now()) <= 3 GROUP BY Category.name 

MYSQL

SELECT DISTINCT Category.name FROM Category INNER JOIN Transaction ON Category.categoryId = Transaction .category_id where PERIOD_DIFF(EXTRACT(YEAR_MONTH FROM NOW()), EXTRACT(YEAR_MONTH FROM Transaction.date)) <= 3