数据库表employeeinfo记录员工信息,字段:classno,classname,empno,empname,h1,h2,h3,h4classno      classname      empno        empname   h1     h2    h3     h4       h5
1            白班           5            张三      null   null  null   null     null
1            白班           6            李四      null   null  null   null     null
2            夜班           7            王五      null   null  null   null     null
2            夜班           8            赵六      null   null  null   null     nullarrange表 字段:classno,classname,empno,empname,bcdate,bctimeclassno    classname    empno    empname     bcdate     bctime问题:如何把employeeinfo表4个字段classno,classname,empno,empname内容添加到arrange表4个字段中?
以下是我写的插入语句
insert into arrange 
select classno,classname,empno,empname
from employeeinfo
group by classno,classname,empno,empname错误提示:
消息 213,级别 16,状态 1,第 2 行
列名或所提供值的数目与表定义不匹配。

解决方案 »

  1.   

    一、错误提示很清楚的,你的arrange中有六个字段,而你的插入语句只指定了四个字段的,所以提示上面的错误;
    二、补充了一下SQL,你用下面的语句就可以了,如果你不需要考虑重复,后面的where可以不要;
    insert into arrange (classno,classname,empno,empname)
    select classno,classname,empno,empname
    from employeeinfo a
    where not exists(select 1 from arrange where classno=a.classno and classname=a.classname and empno=a.empno
    and empname=a.empname)
      

  2.   


    insert into arrange (classno,classname,empno,empname)
    select DISTINCT  classno,classname,empno,empname
    from employeeinfo
    ]指定列名插入就行了
      

  3.   

      arrange 表未指定列名。
      

  4.   

    insert into arrange(classno,classname,empno,empname) 
    select classno,classname,empno,empname
    from employeeinfo
    group by classno,classname,empno,empname
      

  5.   

    语法是这样的 :
    1、说明:复制表(只复制结构,源表名:a 新表名:b) (Access可用) 
    法一:select * into b from a where 1 <>1 
    法二:select top 0 * into b from a 2、说明:拷贝表(拷贝数据,源表名:a 目标表名:b) (Access可用) 
    insert into b(a, b, c) select d,e,f from a; 
      

  6.   

    insert into arrange ( classno,classname,empno,empname)
    select classno,classname,empno,empname
    from employeeinfo
    group by classno,classname,empno,empname