※ 引述《tabear (胖熊)》之銘言:
: 我用的是 MySQL table: info
: id mb data
: ------------------------
: 1 1 0101
: 2 25 0402
: 2 17 0402
: 2 28 0101
: select id,mb,data from info group by id order by data,mb
: 出來的結果是 我心裡想的應該是
: id mb data id mb data
: ------------------------ -----------------------
: 1 1 0101 1 1 0101
: 2 25 0402 2 28 0101
: 請問要怎樣 sql 可以達到我要的結果哩 ?
Use: MSSQL 2005 or 2008 皆可
(不知道以下語法使用部份和 MYSQL 是否有不同)
SELECT
info.id,
info.mb,
info.data
FROM info
LEFT OUTER JOIN
(SELECT id, MAX(data) max_Data FROM info GROUP BY id) TmpTable
/*先抓出目前要的資料當索引
(因為 GROUP BY 的 SELECT 內只能放彙總函數)*/
ON info.id=TmpTable.id AND info.mb=TmpTable.mb
/*利用抓取出之資料與原資料合併*/
WHERE TmpTable.id IS NOT NULL /*把 NULL 不符合資料剔除*/
ORDER BY TmpTable.id, Tmptable.mb -- 完成~!
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 122.116.75.95