A表:
aid int 主键
bb intB表:
bid int 主键
aid
cc要求取出
aid ,bid,cc,bb1(最后一条),bb2(倒数第二条),bb2-bb1
就是要求一条记录中包含bb的最后两条记录,并最后作两条之差
请问如何完成?可以用存储过程写
aid int 主键
bb intB表:
bid int 主键
aid
cc要求取出
aid ,bid,cc,bb1(最后一条),bb2(倒数第二条),bb2-bb1
就是要求一条记录中包含bb的最后两条记录,并最后作两条之差
请问如何完成?可以用存储过程写
(
select
a.aid,a.bb,b.bid,b.cc
from
a,
(select id=row_number()over(order by a.bid desc),* from b)b,
where
a.aid=b.aid
)
select
aid,bid,cc,
bb1=(select bb from f where id=1),
bb2=(select bb from f where id=2),
[bb2-bb1]= (select bb from f where id=1)-(select bb from f where id=2)
from
f
B表中的记录都是唯一的
就是1对N
然后连接两个表取出这样的记录aid ,bid,cc,bb1(最后一条),bb2(倒数第二条),bb2-bb1
这其中的bb是取最大的两个值,不能指定,因为它可能为NULL
就是取出每条bid对应的最后两条A表中的BB记录放在一条中,其他多余的就不要了