select 用户名,车间,convert(varchar(7),时间,120) as 时间,数量 as '数量' from 表a
union 
select 用户名,车间,convert(varchar(7),时间,120) as 时间,数量 as '数量' from 表b
order by 用户名

解决方案 »

  1.   

    select 用户名,车间,时间,sum(数量) 数量
    from
    (
       select 用户名,车间,(Convert(char(7),时间,120)) 时间,数量
       from a
       union all
       select 用户名,车间,(Convert(char(7),时间,120)) 时间,数量
       from b
    ) t
    group by 用户名,车间,时间
      

  2.   

    select 用户名,车间,时间,sum(数量) as 数量
    from (
           select 用户名,车间,(Convert(char(7),时间,120)) as 时间,数量
            from tablea
           union all
           select 用户名,车间,(Convert(char(7),时间,120)) as 时间,数量
            from tableb
         ) b
    group by 用户名,车间,时间
      

  3.   

    select 用户名,车间,convert(varchar(7),时间,120) as '时间',sum(数量) as '数量'
    from 
    (
    select 用户名,车间,convert(varchar(7),时间,120) as '时间',sum(数量) as '数量' from tablea 
    group by 用户名,车间,时间
    union 
    select 用户名,车间,convert(varchar(7),时间,120) as '时间',sum(数量) as '数量' from tableb 
    group by 用户名,车间,时间
    ) a
    group by 用户名,车间,时间
      

  4.   


    select 用户名,convert(varchar(7),时间,120) 时间 , 车间 , 数量 = sum(数量) from
    (
      select 用户名,车间,时间,数量 from A
      union all
      select 用户名,车间,时间,数量 from B
    ) t
    group by 用户名,convert(varchar(7),时间,120) , 车间
      

  5.   

    你这不需要分组的,你的车间名并没有和并,这种查询Union一下就行了--建立表A的数据
    declare @t1 table(
    username varchar(20),
    department varchar(20),
    addtime datetime,
    num int)
    Insert Into @t1
    select 'A','工程','2008-1-2',100
    union all
    select 'B','客服','2008-5-7',20--建立表B的数据
    declare @t2 table(
    username varchar(20),
    department varchar(20),
    addtime datetime,
    num int)
    Insert Into @t2
    select 'A','客服','2008-2-3',25
    union all
    select 'B','工程','2008-5-7',25--查询
    Select 
    username 用户名,
    department 车间,
    convert(nvarchar(7),addtime,120) 时间,
    num 数量
     FRom 
    (Select * FRom @t1 union Select * FRom @t2) t