日期:2014-05-18  浏览次数:20442 次

一个sql 的 update 问题
cn.Execute   "update   结算表   set   全年支出=(select   sum(支出金额)   from   支出表   group   by   医保卡号)   where   医保卡号=支出表.医保卡号 "

各位高手看看这个有不有问题.VB总是报错 "至少一个参数没有被指定值 "


------解决方案--------------------
update 结算表 set 全年支出=(select sum(支出金额) from 支出表 where 医保卡号=支出表.医保卡号 group by 医保卡号)
------解决方案--------------------
update 结算表 set 全年支出=
(
select sum(支出金额) from 支出表 group by 医保卡号
)
from 结算表,支出表 where 医保卡号=支出表.医保卡号
------解决方案--------------------
update 结算表 set 全年支出=(select sum(支出金额) from 支出表 where 医保卡号=结算表.医保卡号 group by 医保卡号)
------解决方案--------------------
update 结算表 set 全年支出=(select sum(支出金额) from 支出表 where 医保卡号=结算表.医保卡号)
------解决方案--------------------
對,可以去掉group by
------解决方案--------------------
鱼的group by 可以省去吧?
------解决方案--------------------
update 结算表
set 结算表.全年支出=
(select sum(支出金额) from 支出表 group by 医保卡号)
from 支出表 ,结算表
where 结算表.医保卡号=支出表.医保卡号 "
------解决方案--------------------
update t
set
全年支出=(select sum(支出金额) from 支出表 where 医保卡号=t.医保卡号)
from
结算表 t

------解决方案--------------------
update a
set
全年支出=b.支出金额
from
结算表 a,
(select 医保卡号,sum(支出金额) as 支出金额 from 支出表 group by 医保卡号) b
where
a.医保卡号=b.医保卡号
------解决方案--------------------
--在Access中需要用域函数
update 结算表 as A
set 全年支出=Dsum( "支出金额 ", "支出表 ", "医保卡号= ' " & A.医保卡号 & " ' ")


Access使用的是Jet-SQL,SQL Server使用的是T-SQL,两者用法上相差很大。


JET SQL 帮助(jet4 access2000)下载地址

http://www.access911.net/index.asp?board=8&recordid=75FAB71E&tt=