2013-01-10 35 views
1
SELECT id, case_id 
FROM `case_note` 
WHERE `type` = 'follow-up-open' 
AND `follow_up_status` =1 
GROUP BY `case_id` 
ORDER BY case_id DESC 

最近我已經使用這個查詢來獲得獨特的結果,我已經得到了id, case_id那就是:在MySQL查詢滯留

id case_id 
141 23 
84 16 
47 14 
36 1 

這個查詢顯示由代理創建的followups,這將顯示所有後續有follow_up_status=1意味着後續創建,follow_up_status=2意味着後續關閉。

現在的問題是讓我們來談談case_id=23。這個案件是關閉的id=145。現在我不想顯示這個案例。但如果在將來如果一個案例將在此case_id上打開,那麼它將再次顯示在後續列表中。

比方說一個新的案例與id=149打開,那麼我想再次顯示這種情況。我無法弄清楚如何處理這種方法,請幫我指導一些線索。

UPDATE:這裏是樣本數據: Sample Data

UPDATE:我的問題解決,但不知道如何關閉這個問題,我只是在這裏更新。我嘗試在單個查詢中解決我的問題,但我已將查詢分成兩個查詢並解決了問題。

+0

究竟是什麼問題?只要您的表格中有case_id = 23和follow-up-status = 1的新行,它將通過您的查詢選擇 – Roy

+0

提供樣本數據和預期結果以獲得更多結算... – hims056

+0

@Roy跟進狀態= 2時的問題,正如'id = 145 case_id = 25'已經關閉了這種情況,我想如果案件id用'follow-up-status = 2'關閉,那麼不想顯示這種情況,這是我的一半查詢,我需要指導來解決這個問題。 –

回答

0

從臀部,但我會嘗試重新創建SQL表來測試它自己...

SELECT `id`, `case_id` 
FROM `case_note` 
WHERE `type` = 'follow-up-open' 
GROUP BY `case_id` 
HAVING SUM(`follow_up_status`) = 1 
ORDER BY `case_id` DESC 
+0

可能不完美/工作 - 在這裏使用非常小的數據示例... –

0

我已經經歷了同樣的情況我所做的就是走了,

你可以保留一個日誌表。我們假設你的表名是大小寫的。創建一個名爲case_log的表。

當您想再次打開案例時,將現有記錄移動到日誌表中。並用新數據更新現有行。

最終,您將在日誌表和新記錄當前表中記錄您的舊記錄,您可以在其中跟蹤任何所需情況的進度。通過使用case_id,您可以跟蹤案件發生的情況。

如果您不想跟蹤過去的數據,只需更新表格即可。我希望你能遵循這個程序,因此需要你所有的數據。

如果您有任何問題,請告訴我。

0

當CASE_ID 23由ID 149重新打開,你可以使用UPDATE改變它的後續狀態:

UPDATE case_note 
SET id=149, follow_up_status=2 
WHERE case_id=23 

或者,如果你想保持約CASE_ID 23的信息beeing一度ID關閉141並記錄新的案例狀態,只需添加一個新行:

id case_id follow_up_status 
149 23   1 

此行將由您當前的查詢選中。