如何取得最近日期異動資料? |
缺席
|
pedro
尊榮會員 發表:152 回覆:1187 積分:892 註冊:2002-06-12 發送簡訊給我 |
請教前輩
我的資料表如下
我要如何用mysql語法,取出標雙星號的資料? 我用 select i.smid,i.pp,i.pg,j.effdate from table i join (select smid,max(effdate) effdate from table group by smid) j on i.smid=j.smid 會取出除了標雙星號外,還多了好幾筆 謝謝指教 編輯記錄
pedro 重新編輯於 2010-01-06 10:32:59, 註解 無‧
| ||||||||||||||||||||||||||||||||||||||||
yckuo
高階會員 發表:55 回覆:389 積分:238 註冊:2003-03-07 發送簡訊給我 |
[code cpp]
SELECT * FROM i WHERE effdate >= ( SELECT DATE_SUB( CURDATE() , INTERVAL 6 DAY ) AS eff_start_date ) [/code] 這樣可以嗎?? 6 那數字自己變,看要找現在起幾天內有變動的.
------
yckuo |
||||||||||||||||||||||||||||||||||||||||
pedro
尊榮會員 發表:152 回覆:1187 積分:892 註冊:2002-06-12 發送簡訊給我 |
感謝yckuo百忙之中撥空回應
您的語法是可以達到我要的, 只是我可能表達錯誤了,我有重新更新假設的資料,應該要取出smid,pp那一群組裡最大日期的該筆資料 我用修改後,還是會找多出標星號一筆 [code sql] select i.smid,i.pp,i.pg,j.effdate from (select smid,pp,pg from table group by smid,pp,pg) i join (select smid,max(effdate) effdate from table group by smid) j on i.smid=j.smid [/code] 1,3,3,2009/12/31* 1,3,4,2009/12/31 2,4,3,2009/11/30 ===================引 用 yckuo 文 章=================== [code cpp] SELECT * FROM i WHERE effdate >= ( SELECT DATE_SUB( CURDATE() , INTERVAL 6 DAY ) AS eff_start_date ) [/code] 這樣可以嗎?? 6 那數字自己變,看要找現在起幾天內有變動的. |
||||||||||||||||||||||||||||||||||||||||
yckuo
高階會員 發表:55 回覆:389 積分:238 註冊:2003-03-07 發送簡訊給我 |
===================引 用 pedro 文 章=================== 只是我可能表達錯誤了,我有重新更新假設的資料,應該要取出smid,pp那一群組裡最大日期的該筆資料 我用修改後,還是會找多出標星號一筆 [code sql] select i.smid,i.pp,i.pg,j.effdate from (select smid,pp,pg from table group by smid,pp,pg) i join (select smid,max(effdate) effdate from table group by smid) j on i.smid=j.smid [/code] =========================================================== 照你的寫法只要在 i.smid=j.smid 後面再加 group by smid,pp 就可以了 或用這樣也可以 [code sql] SELECT smid, pp, pg, max( effdate ) effdate FROM `i` WHERE 1 GROUP BY smid, pp [/code]
------
yckuo |
||||||||||||||||||||||||||||||||||||||||
pedro
尊榮會員 發表:152 回覆:1187 積分:892 註冊:2002-06-12 發送簡訊給我 |
謝謝
我真豬頭,依後面的條件就解出來了 select i.smid,i.pp,i.pg,j.effdate from tsttable i right join (select smid,pp,max(effdate) effdate from tsttable group by smid,pp) j on i.smid=j.smid and i.pp=j.pp and i.effdate=j.effdate ===================引 用 pedro 文 章=================== 照你的寫法只要在 i.smid=j.smid 後面再加 group by smid,pp 就可以了 或用這樣也可以 [code sql] SELECT smid, pp, pg, max( effdate ) effdate FROM `i` WHERE 1 GROUP BY smid, pp [/code] |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |