可以用sursor 來撰寫阿
declare @type varchar(10)
declare @dt datetime
select @type='數學' ,@dt='2000/1/1'
declare @terms varchar(10)
declare @data table (id_ varchar(10),time_ datetime,trems_ varchar(10),value_ numeric(100))
declare lop cursor fast_forward for
select terms from B grouop by terms
open lop
fetch next from lop into @terms
while @@fetch_status = 0
begin
insert @data
select top 100 id_,time,terms ,varue from B where terms=@type order by terms,value desc
fetch next from lop into @terms
end
close lop
deallocate lop
select b.id, a.name , b.terms, b.value
from A a ,B b
where a.id=b.id
大概是這樣寫吧 詳細的可能你要修一下寫法
※ 引述《kazumi6533 (patrick)》之銘言:
: 請問一下
: 我有一個表A(id, name), 表B(id, time, terms, value)
: 例如 A(001, 某甲), B(001, 2000/1/1, 數學, 100分)
: 然後我想透過terms跟value排序
: 例如2001/1/1 數學,然後照分數高低排
: 接下的順序裡面,前100名再按照英文排,以此類推
: 有辦法直接透過SQL寫出類似的查詢嗎?
: 或者是我一定要把2000/1/1的資料全部撈出來
: 然後自己用程式排序篩選?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 123.192.177.178