有表1和表2结构如下:
表1:
标题 发布时间
测试1 2009-03-11
测试2 2009-03-11表2:
标题 人员 时间
测试1 人员1 2009-03-11
测试1 人员2 2009-03-11
测试1 人员3 2009-03-11
测试2 人员2 2009-03-11
测试2 人员3 2009-03-11显示结果:
标题,发布时间,人员数量
人员数量是指: 统计出同一标题所查看的人员数量
谢谢
表1:
标题 发布时间
测试1 2009-03-11
测试2 2009-03-11表2:
标题 人员 时间
测试1 人员1 2009-03-11
测试1 人员2 2009-03-11
测试1 人员3 2009-03-11
测试2 人员2 2009-03-11
测试2 人员3 2009-03-11显示结果:
标题,发布时间,人员数量
人员数量是指: 统计出同一标题所查看的人员数量
谢谢
select a.标题,a.发布时间,count(*) as 人员数量
from 表1 a,表2 b
where a.标题=b.标题
group by a.标题,a.发布时间
if object_id('tempdb..#b')>0 drop table #b
create table #a
(
标题 varchar(10),
发布时间 datetime
)
insert into #a(标题,发布时间)
select '测试1','2009-03-11'
insert into #a(标题,发布时间)
select '测试2','2009-03-11'
create table #b
(
标题 varchar(10),
人员 varchar(10),
发布时间 datetime
)
insert into #b(标题,人员,发布时间)
select '测试1','人员1' , '2009-03-11' insert into #b(标题,人员,发布时间)
select '测试1' , '人员2', '2009-03-11' insert into #b(标题,人员,发布时间)
select '测试1' , '人员3' , '2009-03-11' insert into #b(标题,人员,发布时间)
select '测试2' , '人员2 ' , '2009-03-11' insert into #b(标题,人员,发布时间)
select '测试2 ' , '人员3','2009-03-11'
select a.标题,a.发布时间,(select count(*) from #b b where a.标题=b.标题) 人员 from #a a
create table #2 (标题 varchar(10),人员 varchar(10),时间 varchar(10))insert into #1
select '测试1','2009-03-11'
union all select '测试2','2009-03-11'insert into #2
select '测试1','人员1','2009-03-11' union all
select '测试1','人员2','2009-03-11' union all
select '测试1','人员3','2009-03-11' union all
select '测试2','人员2','2009-03-11' union all
select '测试2','人员3','2009-03-11' select * from #1
select * from #2select a.标题,max(a.发布时间) as 发布时间,count(b.人员) as 人员数量
from #1 a inner join #2 b on (a.标题=b.标题)
group by a.标题/*
标题 发布时间 人员数量
---------- ---------- -----------
测试1 2009-03-11 3
测试2 2009-03-11 2(所影响的行数为 2 行)
*/
select 表2.标题,表1.发布时间,count(*) 人员数量
from 表2
join 表1 on 表2.标题 = 表1.标题
group by 表2.标题, 表1.发布时间
貌似表1没什么用
create table #2 (标题 varchar(10),人员 varchar(10),时间 varchar(10)) insert into #1
select '测试1','2009-03-11'
union all select '测试2','2009-03-11' insert into #2
select '测试1','人员1','2009-03-11' union all
select '测试1','人员2','2009-03-11' union all
select '测试1','人员3','2009-03-11' union all
select '测试2','人员2','2009-03-11' union all
select '测试2','人员3','2009-03-11' select * from #1
select * from #2 select a.标题,max(a.发布时间) as 发布时间,count(b.人员) as 人员数量
from #1 a inner join #2 b on (a.标题=b.标题)
group by a.标题 /*
标题 发布时间 人员数量
---------- ---------- -----------
测试1 2009-03-11 3
测试2 2009-03-11 2 (所影响的行数为 2 行)
*/
create table #1 (标题 varchar(10),发布时间 varchar(10))
create table #2 (标题 varchar(10),人员 varchar(10),时间 varchar(10)) insert into #1
select '测试1','2009-03-11'
union all select '测试2','2009-03-11' insert into #2
select '测试1','人员1','2009-03-11' union all
select '测试1','人员2','2009-03-11' union all
select '测试1','人员3','2009-03-11' union all
select '测试2','人员2','2009-03-11' union all
select '测试2','人员3','2009-03-11' select * from #1
select * from #2 select a.标题,max(a.发布时间) as 发布时间,count(b.人员) as 人员数量
from #1 a inner join #2 b on (a.标题=b.标题)
group by a.标题 /*
标题 发布时间 人员数量
---------- ---------- -----------
测试1 2009-03-11 3
测试2 2009-03-11 2 (所影响的行数为 2 行)
*/
(
Title varchar(10),
Memebr varchar(10),
Date datetime
)
insert into table2 select '标题1','人员1','2009-03-11'
union all select '标题1','人员2','2009-03-11'
union all select '标题1','人员3','2009-03-11'
union all select '标题2','人员2','2009-03-11'
union all select '标题2','人员3','2009-03-11'select Title,count(Memebr)'数量',Date from table2 group by Title,DateTitle 数量 Date
---------- ----------- -----------------------
标题1 3 2009-03-11 00:00:00.000
标题2 2 2009-03-11 00:00:00.000(2 行受影响)