[求助]谁能帮帮我看看怎么写这个sql语句?
[求助]谁能帮帮我看看,这个sql语句?
1,我有一个表
zap (quantity , comid)
zap1(comid ,accountquanity)
现在zap1中有数据。
现在我是想把当前zap表中的对应的comid,的quantity的数据,加到表zap1对应的comid,,的accountquantity,上面去,
-------------------------------------
update zap1
set accountquantity = accountquantity + (select quantity from zap , zap1 where zap.comid = zap1.comid)
where zap1.comid = zap.comid
--------------------
但是效果没有达到,不知道,有没有知道的,指点一下,
谢谢先,
问题点数:100、回复次数:22Top
1 楼wdbc(wdbc for java)回复于 2003-12-02 20:00:24 得分 5
update zap1
set accountquantity = (select accountquantity + quantity from zap , zap1 where zap.comid = zap1.comid)
where zap1.comid = (select zap.comid from zap)
Top
2 楼internetzap(中华)回复于 2003-12-02 20:02:30 得分 0
楼上的谢谢先,,我测试一下,Top
3 楼wdbc(wdbc for java)回复于 2003-12-02 20:03:06 得分 0
sorry 错了
Top
4 楼playyuer(退休干部 卧鼠藏虫)回复于 2003-12-02 20:06:27 得分 10
update zap1
set accountquantity = accountquantity
+ (select quantity from zap where comid = zap1.comid)
where comid in (select comid from zap)Top
5 楼playyuer(退休干部 卧鼠藏虫)回复于 2003-12-02 20:07:08 得分 5
update zap1
set accountquantity = accountquantity
+ (select sum(quantity) from zap where comid = zap1.comid)
where comid in (select comid from zap)
Top
6 楼Arionma()回复于 2003-12-02 20:10:37 得分 5
在子查询中应该还加一个group by comid.Top
7 楼internetzap(中华)回复于 2003-12-02 20:12:50 得分 0
to:: wdbc(wdbc for java) (
有提示错误哦,
服务器: 消息 512,级别 16,状态 1,行 1
子查询返回的值多于一个。当子查询跟随在 =、!=、<、<=、>、>= 之后,或子查询用作表达式时,这种情况是不允许的。
语句已终止。
你再帮我看看撒
Top
8 楼internetzap(中华)回复于 2003-12-02 20:17:09 得分 0
to :playyuer(双规干部)
我哪个不是加上总和,是加上对应相同的zap表中的comid的,quantity,,Top
9 楼zjcxc(邹建)回复于 2003-12-02 20:19:48 得分 8
update zap1 set accountquantity=a.accountquantity+b.quantity
from zap1 a join zap b on a.comid=b.comidTop
10 楼internetzap(中华)回复于 2003-12-02 20:20:20 得分 0
to :上面的各位,
我用,
update zap1
set accountquantity = accountquantity
+ (select sum(quantity) from zap where comid = zap1.comid group by comid)
where comid in (select comid from zap)
还是出现这个提示,
--------------------------------------------------
服务器: 消息 512,级别 16,状态 1,行 1
子查询返回的值多于一个。当子查询跟随在 =、!=、<、<=、>、>= 之后,或子查询用作表达式时,这种情况是不允许的。
语句已终止。
-----------------------------------
我觉得,现在问题,是怎么在表zap1中的accountquantity,加上对应表zap ,comid的quantityTop
11 楼zjcxc(邹建)回复于 2003-12-02 20:21:26 得分 5
update zap1 set accountquantity=a.accountquantity+b.quantity
from zap1 a join (
select a.comid,quantity=sum(quantity) from zap a join zap1 b on a.comid=b.comid
)b on a.comid=b.comidTop
12 楼playyuer(退休干部 卧鼠藏虫)回复于 2003-12-02 20:23:17 得分 10
我之所以sum
是因为怕: zap与zap1 一对多!
服务器: 消息 512,级别 16,状态 1,行 1
子查询返回的值多于一个。当子查询跟随在 =、!=、<、<=、>、>= 之后,或子查询用作表达式时,这种情况是不允许的。
Top
13 楼internetzap(中华)回复于 2003-12-02 20:23:35 得分 0
to :: zjcxc(邹建)
我先测试一下,谢谢先,Top
14 楼internetzap(中华)回复于 2003-12-02 20:31:51 得分 0
to :: zjcxc(邹建)
执行你这个,
提示错误
服务器: 消息 8118,级别 16,状态 1,行 1
列 'a.comid' 在选择列表中无效,因为该列未包含在聚合函数中,并且没有 GROUP BY 子句。
请你还帮我看看把,Top
15 楼CrazyFor(冬眠的鼹鼠)回复于 2003-12-02 22:30:30 得分 10
[求助]谁能帮帮我看看,这个sql语句?
1,我有一个表
zap (quantity , comid)
zap1(comid ,accountquantity)
~~~~~~~~~~~~~~~~~~~~~~~^这个有T吧.
现在zap1中有数据。
现在我是想把当前zap表中的对应的comid,的quantity的数据,加到表zap1对应的comid,,的accountquantity,上面去,
update zap1 set accountquantity=accountquantity+b.quantity from zap a where a.comid=zap1.comid
如果zap表comid有重复
update zap1 set accountquantity=accountquantity+b.quantity from (select comid,sum(quantity) as quantity from zap group by comid) a where a.comid=zap1.comid
Top
16 楼txlicenhe(马可)回复于 2003-12-02 23:47:45 得分 10
update zap1 set accountquantity=a.accountquantity+b.quantity
from zap1 a join (
select ta.comid,quantity=sum(quantity) from zap ta join zap1 tb on ta.comid=tb.comid
)b on a.comid=b.comid
Top
17 楼zjcxc(邹建)回复于 2003-12-03 08:18:14 得分 10
--是忘了加group by
update zap1 set accountquantity=a.accountquantity+b.quantity
from zap1 a join (
select a.comid,quantity=sum(quantity) from zap a join zap1 b on a.comid=b.comid
group by a.comid)b on a.comid=b.comid
Top
18 楼baby97(小雕(Asp→.Net中...)回复于 2003-12-03 09:22:38 得分 5
update zapl set accountquantity=(select a.accountquantity+b.quantity from zap b
join zapl a on b.comid=a.comid) where zapl.comid=zap.comidTop
19 楼internetzap(中华)回复于 2003-12-06 22:09:22 得分 0
问题搞定,谢谢上面的各位,,Top
20 楼designMM(yamping)回复于 2003-12-06 22:23:22 得分 2
那你用的是什么呢,公布出来嘛!Top
21 楼info9817(老巴布)回复于 2003-12-06 22:32:44 得分 10
已经测试成功!斑斑给我加点分吧!
UPDATE zap1, zap SET accountquantity = [accountquantity]+[quantity]
WHERE [zap1].[comid]=[zap].[comid];
试试看!
Top
22 楼yonghengdizhen(等季节一过,繁花就凋落)回复于 2003-12-07 17:28:40 得分 5
playyuer(双规干部)的是对的.
Top




