表1名称 数量
------------
用户A 0
用户B 0
用户C 0表2名称 所属用户
------------
名称1 用户A
名称2 用户B
名称3 用户C
名称4 用户A
名称5 用户A
名称6 用户A
现在需要更新表1,查出表2中该用户的数量,即:
名称 数量
------------
用户A 4
用户B 1
用户C 1
------------
用户A 0
用户B 0
用户C 0表2名称 所属用户
------------
名称1 用户A
名称2 用户B
名称3 用户C
名称4 用户A
名称5 用户A
名称6 用户A
现在需要更新表1,查出表2中该用户的数量,即:
名称 数量
------------
用户A 4
用户B 1
用户C 1
解决方案 »
- 怎么计算一条数据中值不为空的个数
- 如何根据复合查询条件建立索引
- hibernate无主外键关系不能做连接查询么,直接在mysql敲命令可以啊
- 一个在acsess中执行得sql语句无法在mssql中执行 询问解决方案
- 大家好 求助关于求月平均数
- 数据库备份恢复的问题,不难
- Chiff(~o~)、leimin(黄山光明顶)感谢你们的帮助
- 应该不是很难的sql查询语句但是执行起来效率比较低,有没有更好的?(有示例)
- 存储过程的定义和调度问题
- 在页面中用sql查询ParentName中内容,有重复名字只保留一条并显示出来
- MSSQL实现每天定时清空一次数据库表中的记录,如何实现?
- Sql server 2005 修改列顺序问题,在百度难倒一遍,不知道在CSDN是不是也一样.兄弟姐妹们,救命啊!
set 数量=b.数量
from 表1 a,(select count(数量)数量,
所属用户
from 表1
group by 所属用户)b
where a.名称=b.所属用户
from a left join b
on a.名称 = b.所属用户
group by a.名称
set 数量=b.数量
from 表1 as a,
(select 所属用户 as 名称,count(1)as 数量
from 表2
group by 所属用户)as b
where a.名称=b.名称
from a , b
where a.名称 = b.所属用户
group by a.名称
set 数量=b.数量
from 表1 a,(select 所属用户,count(所属用户)as 数量 from 表2 group by 所属用户)b
where a.名称=b.所属用户
update 表1 set 数量=t.数量 from
(select 所属用户,count(1) as 数量
from 表2
group by 所属用户) t
where 表1.名称=t.所属用户
isnull(count(1),0) 数量
from a left join b
on a.名称 = b.所属用户
group by a.名称
(uname varchar(6),
num int
)
insert into tab1 values('用户A',0)
insert into tab1 values('用户B',0)
insert into tab1 values('用户C',0)create table tab2
(tname varchar(6),
uname varchar(6)
)insert into tab2 values ('名称1','用户A')
insert into tab2 values ('名称2','用户B')
insert into tab2 values ('名称3','用户C')
insert into tab2 values ('名称4','用户A')
insert into tab2 values ('名称5','用户A')
insert into tab2 values ('名称6','用户A')用游标一行一行改
declare mycur cursor
for
select uname,count(*) from tab2 group by uname
declare @name varchar(6),@num int
open mycur
fetch next from mycur into @name,@num
while(@@fetch_status=0)
begin
update tab1 set num=@num where uname=@name
fetch next from mycur into @name,@num
end
close mycur
deallocate mycur如果只是查询出你想要的结果
select uname,count(*) from tab2 group by uname
if object_id('tb1') is not null drop table tb1
go
create table tb1 ([名称] char(10) , [数量] int)
insert into tb1 select '用户A' , 0
union all select '用户B' , 0
union all select '用户C' , 0if object_id('tb2') is not null drop table tb2
go
create table tb2 ([名称] char(10) , [所属用户] char(10))
insert into tb2 select '名称1' , '用户A'
union all select '名称2' , '用户B'
union all select '名称3' , '用户C'
union all select '名称4' , '用户A'
union all select '名称5' , '用户A'
union all select '名称6' , '用户A'select * from tb1
结果
名称 数量
用户A 0
用户B 0
用户C 0update tb1
set 数量 = b.数量
from tb1 a ,(select count(1) 数量,
所属用户
from tb2
group by 所属用户) b
where a.名称 = b.所属用户select * from tb1
结果
名称 数量
用户A 4
用户B 1
用户C 1drop table tb1 , tb2
from 表1 a left join 表2 b
on a.名称=b.所属用户
group by a.名称
from 表1 a left join 表2 b
on a.名称=b.所属用户
group by a.名称
create table tb_2(名称 nvarchar(10),所属用户 nvarchar(10))insert into tb_1 values('用户A',0)
insert into tb_1 values('用户B',0)
insert into tb_1 values('用户C',0)insert into tb_2 values('名称1','用户A')
insert into tb_2 values('名称2','用户B')
insert into tb_2 values('名称3','用户C')
insert into tb_2 values('名称4','用户A')
insert into tb_2 values('名称5','用户A')
insert into tb_2 values('名称6','用户A')
UPDATE tb_1 set 数量 = (select count(*) from tb_2 where tb_2.所属用户 = tb_1.名称)select * from tb_1