F
fstao
Unregistered / Unconfirmed
GUEST, unregistred user!
数据库是mssql7,有dbo.cgd_master_ku(采购单)、dbo.fkd_master_ku(付款单,主表)和dbo.fkd_detail_ku(付款单,细表),
数据如下:
(1)、采购单(id为内部id,po为po号,cgjhj为采购价合计,hwybf为海外运保费)
id po cgjhj hwybf
1 po_2 8690
2 po_1 15971
(2)、付款单(主表,id为内部id,fk_lb为付款类别,wbje为外币金额)
id fk_lb wbje
1 采购_海外运保费 1085
(3)、付款单(细表,id与主表的id关联,po_id与采购单的id关联)
id po_id je
1 2 987
1 1 98
我想计算采购单的hwybf,是根据付款单细表的je进行分摊,例如,采购单po=po_2,则hwybf=98*8690/1085=784.90
采购单po=po_1,则hwybf=987*15971/1085=14528.46
SQL语句如下(我之所以用sum(f2.je*cgd.Cgjhj/f1.wbje)和group by f2.po_id是有可能对“采购_海外运保费”
分几次付款):
update cgd_master_ku set Hwybf=(select sum(f2.je*cgd.Cgjhj/f1.wbje) from fkd_master_ku f1,fkd_detail_ku f2,cgd_master_ku cgd
where f1.fklb='采购_海外运保费' and f1.id=f2.id and cgd_master_ku.id=f2.Po_id group by f2.po_id)
但是计算的结果有点莫明其妙:
采购单
id po cgjhj hwybf
1 po_2 8690 2435.19
2 po_1 15971 24525.81
请帮忙修改一下的sql语句。多谢!
数据如下:
(1)、采购单(id为内部id,po为po号,cgjhj为采购价合计,hwybf为海外运保费)
id po cgjhj hwybf
1 po_2 8690
2 po_1 15971
(2)、付款单(主表,id为内部id,fk_lb为付款类别,wbje为外币金额)
id fk_lb wbje
1 采购_海外运保费 1085
(3)、付款单(细表,id与主表的id关联,po_id与采购单的id关联)
id po_id je
1 2 987
1 1 98
我想计算采购单的hwybf,是根据付款单细表的je进行分摊,例如,采购单po=po_2,则hwybf=98*8690/1085=784.90
采购单po=po_1,则hwybf=987*15971/1085=14528.46
SQL语句如下(我之所以用sum(f2.je*cgd.Cgjhj/f1.wbje)和group by f2.po_id是有可能对“采购_海外运保费”
分几次付款):
update cgd_master_ku set Hwybf=(select sum(f2.je*cgd.Cgjhj/f1.wbje) from fkd_master_ku f1,fkd_detail_ku f2,cgd_master_ku cgd
where f1.fklb='采购_海外运保费' and f1.id=f2.id and cgd_master_ku.id=f2.Po_id group by f2.po_id)
但是计算的结果有点莫明其妙:
采购单
id po cgjhj hwybf
1 po_2 8690 2435.19
2 po_1 15971 24525.81
请帮忙修改一下的sql语句。多谢!