用insert into 不行
------------------
如果是因为还没有表2,则:select 部门代号, 部门名称,sum(实发工资) as 一月,0 as 二月,0 as 三月,0 as 四月
into table2
from table1
where convert(varchar(6),日期,112)='200301'
group by 部门代号, 部门名称

解决方案 »

  1.   

    declare @gongzi int
    set @gongzi = select sum(实发工资) from 表一 where 日期='二月'
    insert into 表二(部门代号, 部门名称, '@gongzi' ,null,null,null)
      

  2.   

    insert into 表二(部门代号,部门名称,一月,二月,三月,四月)
    select 部门代号 ,部门名称,sum(实发工资) ,0,0,0)
    from 表一 where year(日期)=2003 and month(日期)=1
    group by 部门代号,部门名称
      

  3.   

    我这样实了一下:
    declare @gongzi int
    set @gongzi = select sum(实发工资) from 表一 where 日期='二月'
    insert into 表二(部门代号, 部门名称, '@gongzi' ,null,null,null)提示有错误:select 附近有语法错误
                '@gongzi' 附近有语法错误。怎样改呀?!请各位在帮帮忙!在线等!
      

  4.   

    insert into table2 (部门代号, 部门名称, 一月)
    select 部门代号,部门名称, sum(实发工资)
    from table1
    where 日期='一月'
    group by 部门代号,部门名称
      

  5.   

    ‘我这样实了一下:
    declare @gongzi int
    set @gongzi = select sum(实发工资) from 表一 where 日期='二月'
    insert into 表二(部门代号, 部门名称, '@gongzi' ,null,null,null)提示有错误:select 附近有语法错误
                '@gongzi' 附近有语法错误。怎样改呀?!请各位在帮帮忙!在线等!
    我想应该把否’我想你这句的错误在于,你应该把整个select()起来,另外你的变量不能用''引起来!!
      

  6.   

    -- 方法就是下面的方法,需要查询出什么样的结果楼主看着办好了,参考下就可以了。
    -- 如果表二不存在
    SELECT
    部门代号 = 部门代号,
    部门名称 = 部门名称,
    一月 = SUM(实发工资),
    二月 = 0,
    三月 = 0,
    四月 = 0
    INTO 表二
    FROM 表一
    WHERE MONTH(日期) = 1
    GROUP BY 部门代号,部门名称-- 如果表二存在
    INSERT INTO 表二
    SELECT
    部门代号 = 部门代号,
    部门名称 = 部门名称,
    一月 = SUM(实发工资),
    二月 = 0,
    三月 = 0,
    四月 = 0
    FROM 表一
    WHERE MONTH(日期) = 1
    GROUP BY 部门代号,部门名称