declare @a table(ID int identity(1,1),Address varchar(10)) insert @a select '北京' union all select '上海' union all select '天津'declare @b table(ID int identity(1,1),Address varchar(10)) insert @b select '北京' union all select '北京' union all select '河北' union all select '天津'--insert into c select ID, Address, (select count(1) from @b b where b.Address= a.Address) as 计数 from @a a--select 结果为: /* ID Address 计数 ----------- ---------- ----------- 1 北京 2 2 上海 0 3 天津 1 */不知道楼主怎么样在测试呢??
a表 字典表 ID Address 1 北京 2 上海 3 天津 4 广州 5 成都b表 内容表 id Address user regtime ... 1 北京 aaa 2005-12-30 2 上海 aa1 2005-10-8 3 北京 bds 2006-1-12 4 广州 saf 2006-1-2 5 成都 aa 2006-1-10 6 广州 bbb 2006-1-19 7 北京 ccl 2005-9-25 8 北京 kee 2005-10-13 9 上海 oow 2005-11-11c表 ID AddressID AddressCount time每次执行需要比对a表中所有值,插入c表。a表有几行,就插入c表几行。也就是统计出b表中每个城市的人数
总有错误, insert into c select ID, Address, (select count(1) from b where b.Address= a.Address) as 计数 from a显示 a表无效,而且c表ID字段是自动编号字段,后面还有个时间字段 我把程序改成 insert into c(AddressID,AddressCount) values( select ID, Address, (select count(1) from b where b.Address= a.Address) as 计数 from a ) 这样又提示 select附近有语法错误,)附近有语法错误
insert into c select ID, Address, (select count(1) from b where b.Address= a.Address) as 计数 from a-----------那个,是全角,修改一下
select ID,
Address,
(select count(1) from b where a.id = b.id) as 计数
from a
select ID,
Address,
(select count(1) from b where b.Address= a.Address) as 计数
from a
a表
ID Address
1
2
3
a表
ID Address
1 北京
2 上海
3 天津b表
ID Address ....
1 北京
2 北京
3 河北
4 天津
那么程序执行之后c表插入
c表
ID AddressID count
1 1 2
2 2 0
3 3 1
insert @a
select '北京' union all
select '上海' union all
select '天津'declare @b table(ID int identity(1,1),Address varchar(10))
insert @b
select '北京' union all
select '北京' union all
select '河北' union all
select '天津'--insert into c
select ID,
Address,
(select count(1) from @b b where b.Address= a.Address) as 计数
from @a a--select 结果为:
/*
ID Address 计数
----------- ---------- -----------
1 北京 2
2 上海 0
3 天津 1
*/不知道楼主怎么样在测试呢??
ID Address
1 北京
2 上海
3 天津
4 广州
5 成都b表 内容表
id Address user regtime ...
1 北京 aaa 2005-12-30
2 上海 aa1 2005-10-8
3 北京 bds 2006-1-12
4 广州 saf 2006-1-2
5 成都 aa 2006-1-10
6 广州 bbb 2006-1-19
7 北京 ccl 2005-9-25
8 北京 kee 2005-10-13
9 上海 oow 2005-11-11c表
ID AddressID AddressCount time每次执行需要比对a表中所有值,插入c表。a表有几行,就插入c表几行。也就是统计出b表中每个城市的人数
a表
ID Address
1 北京
2 上海
3 天津b表
ID Address ....
1 北京
2 北京
3 河北
4 天津
那么程序执行之后c表插入
c表
ID AddressID count
1 1 2
2 2 0
3 3 1---------------------------有什么问题吗????
insert into c
select ID,
Address,
(select count(1) from b where b.Address= a.Address) as 计数
from a显示 a表无效,而且c表ID字段是自动编号字段,后面还有个时间字段
我把程序改成
insert into c(AddressID,AddressCount) values(
select ID,
Address,
(select count(1) from b where b.Address= a.Address) as 计数
from a
)
这样又提示 select附近有语法错误,)附近有语法错误
select ID,
Address,
(select count(1) from b where b.Address= a.Address) as 计数
from a-----------那个,是全角,修改一下