2
我有以下MySQL的表結構,並用它作爲一種記錄表(entries_log)的:如何查詢mysql表中的更改?
customer_id | parent_id | child_id | quarter | month
xyz | 21 | 3 | 20121 | 201201
xyz | 21 | 5 | 20121 | 201201
xyz | 21 | 5 | 20122 | 201204
xyz | 21 | 6 | 20122 | 201204
xyz | 21 | 4 | 2| 201207
... | ... | .... | .... | ...
我希望你能表的想法。現在我想跟蹤每個customer_id和父母上一個季度與上一季度相關的child_id是否有任何上行變化(可能在四分之一行中存在差距,所以下面的例子是可能的,並且必須被認爲是:20121 ... 20122 .... 20124)。
所以在上面我只是想有以下輸出的例子:
xyz | 21 | 5 | 20121 | 201201
xyz | 21 | 6 | 20122 | 201204
我計算出這個查詢:
SELECT e.customer_id, e.parent_id, e.child_id, e.month, e.quarter
FROM (
SELECT MAX(month) AS maxmonth, quarter, max(child_id)
FROM entries_log AS e
WHERE EXISTS (
SELECT *
FROM entries_log AS f
WHERE (
SELECT COUNT(*) FROM entries_log AS g
WHERE g.quarter = f.quarter
AND g.month = f.month
) <= 2
AND e.quarter > quarter
AND e.child_id> child_id
)
GROUP BY quarter
) AS x
INNER JOIN entries_log AS e ON e.quarter = x.quarter AND e.month = x.maxmonth;
我讀this網站,這對我幫助很大,但我仍然無法找到正確的查詢。
我感謝您的幫助,謝謝!
它可以使用[變量](http://dev.mysql.com/doc/refman/5.0/en/user-variables.html)完成。坦率地說,除非你發佈了鉅額獎金,否則我不會告訴你代碼,因爲這只是太多的工作。 – Bohemian 2012-03-09 12:41:08
謝謝你的回答,波希米亞人。但我不能爲這個問題花錢;) – user1259201 2012-03-09 12:49:28
他可能並不是指金錢,而是業力賞金。但你沒有足夠的業力來發布這樣的獎勵呢。無論如何,多好的學習機會! :-D – 2012-03-09 13:39:00