討論區快速選單
知識庫快速選單
掌握Salesforce雲端管理秘訣 程式設計俱樂部Facebook粉絲團 傑米的攝影旅遊筆記
[ 回上頁 ] [ 討論區發言規則 ]
請教各位高手一個sql語法∼
更改我的閱讀文章字型大小
作者 : chonder(阿德)
[ 貼文 1 | 人氣 201 | 評價 0 | 評價/貼文 0 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2008/12/2 下午 02:56:19
INVNO LINE INVLINK ADATE
=====================================================
TFN8A004 000100 TFN8A004-01 2008-10-09 00:00:00.000
TFN8A004 000200 TFN8A004-02 2008-10-09 00:00:00.000
TFN8A004 000300 TFN8A004-03 2008-10-09 00:00:00.000
TFN8A004 000300 TFN8A004S1-03 2008-10-20 10:11:29.000
TFN8A004 000400 TFN8A004-04 2008-10-09 00:00:00.000
TFN8A004 000400 TFN8A004S1-04 2008-10-20 10:11:29.000
TFN8A004 000500 TFN8A004-05 2008-10-09 00:00:00.000
TFN8A004 000500 TFN8A004S1-05 2008-10-20 10:11:29.000
TFN8A004 000500 TFN8A004S2-05 2008-11-12 15:18:12.000
TFN8A004 000600 TFN8A004-06 2008-10-09 00:00:00.000
TFN8A004 000600 TFN8A004S1-06 2008-10-20 10:11:29.000
TFN8A004 000600 TFN8A004S2-06 2008-11-12 15:18:12.000

希望取出各LINE的ADATE最大的那筆,如下

INVNO LINE INVLINK ADATE
=====================================================
TFN8A004 000100 TFN8A004-01 2008-10-09 00:00:00.000
TFN8A004 000200 TFN8A004-02 2008-10-09 00:00:00.000
TFN8A004 000300 TFN8A004S1-03 2008-10-20 10:11:29.000
TFN8A004 000400 TFN8A004S1-04 2008-10-20 10:11:29.000
TFN8A004 000500 TFN8A004S2-05 2008-11-12 15:18:12.000
TFN8A004 000600 TFN8A004S2-06 2008-11-12 15:18:12.000


請問這道SQL語法該如何下呢?感嗯啊
作者 : changada1020(Ada_chang)
[ 貼文 19 | 人氣 2826 | 評價 50 | 評價/貼文 2.63 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2008/12/11 下午 02:05:39
SELECT INVNO,LINE,INVLINK,MAX(ADATE) AS ADATE
FROM TABLE
GROUP BY INVNO,LINE,INVLINK
作者 : marlon(marlon) C#卓越專家貼文超過200則
[ 貼文 495 | 人氣 1886 | 評價 3510 | 評價/貼文 7.09 | 送出評價 4 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2008/12/11 下午 04:55:31
>SELECT INVNO,LINE,INVLINK,MAX(ADATE) AS ADATE
>FROM TABLE
>GROUP BY INVNO,LINE,INVLINK
>
提問者要找相同的 INVNO, LINE, ADATE 最大的 INVLINK,
不能對 INVLINK group by,

如果符合 ADATE 是同組中最大的 INVLINK 都出現 (也就是同組中若有二個 INVLINK 都是最大值, 全列出), 可用
select INVNO, LINE, INVLINK, ADATE
from table as M
where INVLINK = (select max(ADATE) from table where INVNO=M.INVNO and LINE=M.LINE)

如果只能列出一項, 那就看如何排序
select INVNO, LINE, INVLINK, ADATE
from table as M
where INVLINK = (select top 1 INVLINK from table where INVNO=M.INVNO and LINE=M.LINE order by ADATE desc, 接下來看如何排序)
作者 : marlon(marlon) C#卓越專家貼文超過200則
[ 貼文 495 | 人氣 1886 | 評價 3510 | 評價/貼文 7.09 | 送出評價 4 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2008/12/11 下午 04:57:57
更正
select INVNO, LINE, INVLINK, ADATE
from table as M
where ADATE= (select max(ADATE) from table where INVNO=M.INVNO and LINE=M.LINE)
作者 : marlon(marlon) C#卓越專家貼文超過200則
[ 貼文 495 | 人氣 1886 | 評價 3510 | 評價/貼文 7.09 | 送出評價 4 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2008/12/11 下午 05:01:12
sorry, 頭腦還沒清醒, 再更正一次

select INVNO, LINE, INVLINK, ADATE
from table as M
group by INVNO, INVLINK
having ADATE = (select max(ADATE) from table where INVNO=M.INVNO and LINE=M.LINE)

select INVNO, LINE, INVLINK, ADATE
from table as M
group by INVNO, INVLINK
having INVLINK = (select top 1 INVLINK from table where INVNO=M.INVNO and LINE=M.LINE order by ADATE desc)
 板主 : 徵求中
 > SQL Server 7/2000 - 討論區
 - 最近熱門問答精華集
 - 全部歷史問答精華集
 - SQL Server 7/2000 - 知識庫
  ■ 全站最新Post列表
  ■ 我的文章收藏
  ■ 我最愛的作者
  ■ 全站文章收藏排行榜
  ■ 全站最愛作者排行榜
  ■  月熱門主題
  ■  季熱門主題
  ■  熱門主題Top 20
  ■  本區Post排行榜
  ■  本區評價排行榜
  ■  全站專家名人榜
  ■  全站Post排行榜
  ■  全站評價排行榜
  ■  全站人氣排行榜
 請輸入關鍵字 
  開始搜尋
 
Top 10
評價排行
SQL Server 7/2000
1 小朱 1540 
2 小台 1520 
3 Gordon 600 
4 ㄉ一ˊㄎㄜˋ 580 
5 路人 490 
6 max 470 
7 william 410 
8 Aries 250 
9 阿利 180 
10 羅啟章 160 
SQL Server 7/2000
  專家等級 評價  
  一代宗師 10000  
  曠世奇才 5000  
  頂尖高手 3000  
  卓越專家 1500  
  優秀好手 750  
Microsoft Internet Explorer 6.0. Screen 1024x768 pixel. High Color (16 bit).
2000-2019 程式設計俱樂部 http://www.programmer-club.com.tw/
6.201172E-02