這兩個SQL語句怎麼寫 |
尚未結案
|
martinTOP
一般會員 ![]() ![]() 發表:10 回覆:19 積分:5 註冊:2004-06-12 發送簡訊給我 |
問題一: 我要在一個表TableA中找出一些數據,TableA的資料如下:
StaffCode Code SeqNo ItemNo
A0023 A 1 6
A0023 C 2 4
A0023 X 3 5
A0023 Z 4 5
A0026 A 1 6
A0026 C 2 4
A0026 X 3 5
A0026 Z 4 6
A0030 A 1 5
A0030 C 2 4
A0030 X 3 6
A0030 Z 4 6
A0032 A 1 6
A0032 C 2 4
A0032 X 3 6
A0032 Z 4 6
查詢后得到的結果如下:
StaffCode Code SeqNo ItemNo
A0023 A 1 6
A0026 A 1 6
A0030 X 3 6
A0032 A 1 6
說明:我要找出每個STAFF的最大ITEMNO的值,若某個STAFF有多個最大ITEMNO值時,就按SEQNO排序,先第一個.請問各位大大,能不能用SQL語句實現,若一個語句不行可用臨時表和多個語句
問題二: 我有如下TABLE ID Date TIME
01 20040901 0800
02 20040901 0820
03 20040901 0900 有什麼辦法可以找到最接近 0830 這個值的這條記錄
02 20040901 0820
高手請幫忙
|
timhuang
尊榮會員 ![]() ![]() ![]() ![]() ![]() ![]() 發表:78 回覆:1815 積分:1608 註冊:2002-07-15 發送簡訊給我 |
1.
select a.StaffCode, a.Code, a.SeqNo, a.ItemNo from TableA a inner join (select StaffCode, min(SeqNo) as minSeqNo from TableA group by StaffCode) b on a.StaffCode = b.StaffCode and a.SeqNo = b.minSeqNo 2.
select * from t3 where abs(convert(int,TIME)-convert(int,'0830')) = (select min(abs(convert(int,TIME)-convert(int,'0830'))) from t3)
|
martinTOP
一般會員 ![]() ![]() 發表:10 回覆:19 積分:5 註冊:2004-06-12 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |