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

解决方案 »

  1.   


    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
      

  2.   

    看提供的数据,似乎不需要做sum...
    直接按日期join就可以了
      

  3.   

    select a.日期, a.咨询次数, b.投诉次数,c.反馈次数 from a join b on a.日期=b.日期 join c on b.日期 =c.日期
      

  4.   

    select a.日期, a.咨询次数, b.投诉次数,c.反馈次数 from a join b on a.日期=b.日期 join c on b.日期 =c.日期
    --不需要求和了!
      

  5.   

      select tmp = case ACCESS_RIGHT_TYPE when 'GROUP' then 'a' else 'b' end  from dbo.ACCESS_RIGHTselect 
    日期=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.日期
      

  6.   

    create table #tmp
    {
        日期 咨询次数 投诉次数 反馈次数}
    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 
      

  7.   

    2楼就可以了,但是好像可以不用sum吧
      

  8.   

    上面写漏END拉:
    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.日期
      

  9.   

    都没有LZ想要的结果哦,create table A(
    日期 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.日期
      

  10.   

    照楼主的最终结果来:
    结果:
    日期 咨询次数 投诉次数 反馈次数
    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表中的日期字段读取出来 放入:零时表的日期字段,依次类推,可以得到楼主想要的结果,由于时间问题就不写了!