A表:
日期 咨询次数
2010-2-1 2
2010-2-2 3
2010-2-8 7
B表:
日期 投诉次数
2010-2-1 2
2010-2-2 3
2010-2-3 6
C表:
日期 反馈次数
2010-2-1 2
2010-2-2 2
2010-2-4 4
2010-2-8 1
结果:
日期 咨询次数 投诉次数 反馈次数
2010-2-1 2 2 2
2010-2-2 3 3 2
2010-2-3 0 6 0
2010-2-4 0 0 4
2010-2-8 7 0 1
日期 咨询次数
2010-2-1 2
2010-2-2 3
2010-2-8 7
B表:
日期 投诉次数
2010-2-1 2
2010-2-2 3
2010-2-3 6
C表:
日期 反馈次数
2010-2-1 2
2010-2-2 2
2010-2-4 4
2010-2-8 1
结果:
日期 咨询次数 投诉次数 反馈次数
2010-2-1 2 2 2
2010-2-2 3 3 2
2010-2-3 0 6 0
2010-2-4 0 0 4
2010-2-8 7 0 1
解决方案 »
- httpHandlers在虚拟主机上不可用?
- gridview与bool字段
- 跪求 !!!!!!
- 怎么样判断一个变量是否为数字类型
- 未授权登陆前直接访问某页会自动跳转到登陆页,如何在跳转前执行正访问页中的代码?
- 关于使用框架后首次页面启动太慢的问题
- 神哪,救救我吧,我快疯掉了!
- 关于ASP.net结合Flash AS3操作数据库的问题
- dropDownList控件的问题。修改时,得到数据源中的数据显示在dropDownList上。。。(急死了!)
- 一个简单问题
- |zyciis| <a id="aAccount" runat="server" href="<%# Tools.GetWebPathS() %>/Login.aspx">如何正确绑定 谢谢
- alter 修改数据表列名 sqlserver2005
select a.date,sum(咨询次数) as 咨询次数, sum(投诉次数) as 投诉次数, sum(反馈次数) as 反馈次数
from a
join b on a.date=b.date
join c on a.date=c.date
group by a.date
直接按日期join就可以了
--不需要求和了!
日期=case a.日期 when null then (case b.日期 when null then c.日期 else b.日期 end) else a.日期 end,
咨询次数=case a.咨询次数 when null then 0 else a.咨询次数,
投诉次数=case b.投诉次数 when null then 0 else b.投诉次数,
反馈次数=case c.反馈次数 when null then 0 else c.反馈次数
from a
full join b on a.日期 = b.日期
full join c on b.日期 = c.日期
{
日期 咨询次数 投诉次数 反馈次数}
inert into #tmp(日期,咨询次数)
select × from a表insert into #tmp(日期,投诉次数)
select × from b表inset into #tmp(日期,反馈次数)
select × from c表select 日期,sum(咨询次数),sum(投诉次数),sum(反馈次数) from #tmp group by 日期
drop table #tmp
select
日期=case a.日期 when null then (case b.日期 when null then c.日期 else b.日期 end) else a.日期 end,
咨询次数=case a.咨询次数 when null then 0 else a.咨询次数 end,
投诉次数=case b.投诉次数 when null then 0 else b.投诉次数 end,
反馈次数=case c.反馈次数 when null then 0 else c.反馈次数 end
from a
full join b on a.日期 = b.日期
full join c on b.日期 = c.日期
日期 datetime,
咨询次数 int
)
create table B(
日期 datetime,
投诉次数 int,
)
create table C(
日期 datetime,
反馈次数 int
)insert into A values('2010-2-1',2)
insert into A values('2010-2-2',3)
insert into A values('2010-2-8',7)
insert into B values('2010-2-1',2)
insert into B values('2010-2-2',3)
insert into B values('2010-2-3',6)
insert into c values('2010-2-1',2)
insert into c values('2010-2-2',2)
insert into c values('2010-2-4',4)
insert into c values('2010-2-8',1)select A.日期,Sum(咨询次数),sum(投诉次数),sum(反馈次数) from A
full join B on B.日期=A.日期
full join C on C.日期=B.日期
group by A.日期
结果:
日期 咨询次数 投诉次数 反馈次数
2010-2-1 2 2 2
2010-2-2 3 3 2
2010-2-3 0 6 0
2010-2-4 0 0 4
2010-2-8 7 0 1来看,可以用临时表的方式来实现, 先把A表,B表,C表中的日期字段读取出来 放入:零时表的日期字段,依次类推,可以得到楼主想要的结果,由于时间问题就不写了!