---求一SQL语句---请进

Steve_csdn 2005-05-07 01:55:01
举个例子:

有两个表 苹果和箱子,每个苹果都放在箱子里,一个箱子有1-N个苹果

表 苹果

ID 所在箱子ID 颜色 ..... .....
1 A 红
2 A 绿
3 B 红
.....


表 箱子

ID 大小 装苹果数
A 5斤 N个
B 10斤 N个


我想用一条

update 箱子 set 箱子.装苹果数=ttt.b from 箱子,(select ID a,count(*) b from 苹果 group by ID) ttt where 箱子.ID =ttt.a

把每个箱子装的苹果树统计出来写在‘装苹果数’这个字段中,如何写?

要求用一条SQL实现,不能用游标





...全文
122 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
paoluo 2005-05-07
  • 打赏
  • 举报
回复
语法好像没有错误的啊。
Steve_csdn 2005-05-07
  • 打赏
  • 举报
回复
--或者:
update a set 装苹果数=(select count(*) from 苹果 where 所在箱子ID=a.ID)
from 箱子 a


--或者:
update 箱子 set 装苹果数=(select count(*) from 苹果 where 苹果.所在箱子ID=箱子.ID)

可以得出正确的结果,但是下面这句却执行不了


update a
set 装苹果数=b.cnt
from 箱子 a,(select 所在箱子ID,count(*) as cnt from 苹果 group by 所在箱子ID)b
where a.ID=b.所在箱子ID

Msg 102, Level 15, State 1:
Line 1:
Incorrect syntax near '('.
Msg 102, Level 15, State 1:
Line 1:
Incorrect syntax near 'b'.



不知为何?


chenqianlong 2005-05-07
  • 打赏
  • 举报
回复
xue
paoluo 2005-05-07
  • 打赏
  • 举报
回复
晕了,又慢了一点。

另外,苹果表中应该有个苹果个数的字段吧。
paoluo 2005-05-07
  • 打赏
  • 举报
回复
Update A Set 装苹果数=(Select Count(*) from 苹果 Where 所在箱子ID=A.ID) from 箱子 A
zjcxc 元老 2005-05-07
  • 打赏
  • 举报
回复
--或者:
update a set 装苹果数=(select count(*) from 苹果 where 所在箱子ID=a.ID)
from 箱子 a


--或者:
update 箱子 set 装苹果数=(select count(*) from 苹果 where 苹果.所在箱子ID=箱子.ID)

talantlee 2005-05-07
  • 打赏
  • 举报
回复
用update的話,首先你要幫表加個字段
alter table 蘋果 add 装苹果数 int
zjcxc 元老 2005-05-07
  • 打赏
  • 举报
回复
update a
set 装苹果数=b.cnt
from 箱子 a,(select 所在箱子ID,count(*) as cnt from 苹果 group by 所在箱子ID)b
where a.ID=b.所在箱子ID

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧