資料庫:mssql表:
icno(卡號) date(日期) balance(餘額) iclineno(卡流水號)
0001 2005/10/01 100 10
0001 2005/10/02 99 11
0001 2005/10/02 98 12
0002 2005/10/01 60 30
0003 2005/10/01 60 30
0004 2005/10/02 70 40
0001 2005/10/03 97 13
0002 2005/10/02 59 31
0001 2005/10/04 96 14
0002 2005/10/02 58 32
0003 2005/10/02 59 31
0002 2005/10/03 57 33
要求結果:
icno(卡號) date(日期) balance(餘額) iclineno(卡流水號)
0001 2005/10/02 98 12
0001 2005/10/03 97 13
0001 2005/10/04 96 14
0002 2005/10/02 59 31
0002 2005/10/02 58 32
0002 2005/10/03 57 33
0003 2005/10/01 60 30
0003 2005/10/02 59 31
0004 2005/10/02 70 40
想要每乙個卡號(icno)的最後三次記錄,記錄多於三次就取最後三次記錄
-----------------------------------
create table #tab (icno varchar(8) , date datetime, balance float ,iclineno int ) go
insert into #tab values('0001', '2005/10/01', 100, 10)
insert into #tab values('0001', '2005/10/02', 99, 11)
insert into #tab values('0001', '2005/10/02', 98, 12)
insert into #tab values('0002', '2005/10/01', 60, 30)
insert into #tab values('0003', '2005/10/01', 60, 30)
insert into #tab values('0004', '2005/10/02', 70, 40)
insert into #tab values('0001', '2005/10/03', 97, 13)
insert into #tab values('0002', '2005/10/02', 59, 31)
insert into #tab values('0001', '2005/10/04', 96, 14)
insert into #tab values('0002', '2005/10/02', 58, 32)
insert into #tab values('0003', '2005/10/02', 59, 31)
insert into #tab values('0002', '2005/10/03', 57, 33) go
select * from #tab t
where (select count(date) from #tab where icno=t.icno and iclineno>=t.iclineno)<=3
order by t.icno,t.date
-----------------------------------
注:本來感覺這問題和我前幾天做的那個「取前幾名的例子
」問題一樣呢。後來發現有iclineno(卡流水號)這個字段,這樣出現重複日期的問題就可以處理了,解決了sybase下無top的問題。看來對於某些需求,加個唯一(或者在組內唯一)的字段還是很有必要的
Oracle查詢每乙個使用者的最後乙個登入時間
使用row number over partition by 函式 row number over rank over 和dense rank over 函式的使用下面以班級成績表t2來說明其應用 t2表資訊如下 cfe 2 74 dss 1 95 ffd 1 95 fda 1 80 gds 2 9...
乙個小問題的三次重開
盛宇 採購管理 計稅採購單 js buy in.xml 需求 編輯介面,查詢頁面,主列表頁面增加 客戶發貨日期 字段以及規則 實現 列表頁面 查詢頁面 編輯頁面 還要的就是在select語句中加上這個字段 都是小問題 我以為就這樣ok了。不久之後就重開了,現在都還不記得是怎麼回事,我都不知道這個任務...
乙個草根站長的三次建站經歷
很多人問過我上網有沒有被騙過,我說基本上沒有,唯一的就是做 讓人給騙了2次。一次是在網上一次還是在身邊。我想這不僅僅是利用網路的欺騙,其實更為表現在目前做 的人一種比較普遍的狀態。看似他們是靠技術吃飯其實不然他們更多的是靠嘴吃飯的。揭開製作 之迷,雖然可能會比較淺顯,但是我想物件我這樣利用網路做生意...