oracle SQL问题(100)

  • 主题发起人 主题发起人 cyf4
  • 开始时间 开始时间
C

cyf4

Unregistered / Unconfirmed
GUEST, unregistred user!
数据表dep type FSum FRate001 1035 2001 1036 6002 1035 8002 1036 9......结果:dep type FSum FRate001 1035 2 2/6001 1036 6002 1035 8 8/9002 1036 9......
 
详细说一下,如果是同一个DEP值是多行怎么办?
 
如果只有2个,可以这样:select a.*, a.fsum/b.fsum as ratefrom 表1 a left join 表1 b on a.rowid<>b.rowid and a.keyfield=b.keyfield
 
dep值会多行:dep type FSum FRate001 1035 2001 1036 6002 1035 8002 1036 9......结果:dep type FSum FRate001 1035 2 2/6001 1036 6001 1037 4 4/6001 1038 6002 1035 8 8/9002 1036 9002 1037 10 10/29002 1038 29......
 
select a.*, a.fsum/b.fsum as rate1, (Case when a.type%2=1 then
a.fsum/b.fsum else
null end) rate2 //sql server格式,其它数据库可能编译不通过from 表1 a left join 表1 b on a.dep=b.dep and a.type=b.type+1
 
后退
顶部