SQL:列名或所提供值的数目与表定义不匹配

嵌套查询后将结果插入自定义表,执行时出错:列名或所提供值的数目与表定义不匹配;

是因为我子查询的字段与新建的表格字段不一致吗。。。要怎么改呢?

------------------------------------------------------------------

IF NOT EXISTS (SELECT * FROM sysobjects WHERE name LIKE 'tmpworkflowusetime' AND type ='U')

CREATE TABLE [dbo].[tmpworkflowusetime](  [流程标题] [varchar](1000) NULL,  [区域] [varchar](1000) NULL,  [创建时间] [varchar](1000) NULL,  [节点名称] [varchar](1000) NULL,  [工作流名称] [varchar](1000) NULL,  [审批时间] [float] NULL) ON [PRIMARY]ELSE

DELETE FROM tmpworkflowusetime;

INSERT INTO tmpworkflowusetime

SELECT流程标题,区域,创建时间,节点名称,工作流名称,ROUND(MAX(((CONVERT(float,CONVERT(datetime,CASE WHEN 操作日期 <> '' THEN  CONVERT(VARCHAR,操作时间,20) ELSE CONVERT(VARCHAR,GETDATE(),20) END))-CONVERT(FLOAT,CONVERT(DATETIME,CONVERT(VARCHAR,接收时间,20))))*24*60)/60),2) 审批时间

FROM(SELECT cast(c.workflowid as varchar(100))+'-'+cast(c.requestid as varchar(100))+'-'+cast(a.requestname as varchar(100))  流程标题,(SELECT region FROM HrmResource hr,v_mcqy qy WHERE hr.id=a.creater and qy.id=hr.subcompanyid1 )  区域,a.createdate 创建时间,e.nodename 节点名称,workflowname 工作流名称,c.operatedate 操作日期, (c.receivedate+' '+c.receivetime) AS 接收时间, (c.operatedate+' '+c.operatetime) AS 操作时间

FROM workflow_requestbase a,workflow_base b ,workflow_currentoperator c,HrmResource d,workflow_nodebase e,v_mcqy fwhere a.workflowid=b.id and c.requestid=a.requestidand c.userid=d.idand c.nodeid =e.idand f.id=d.subcompanyid1and b.workflowtype in (38)and b.workflowname in ('XXXXX')and c.userid in (SELECT ID FROM HrmResource WHERE  belongto <1)and (c.operatedate is not null or c.operatetime is not null) and (c.operatedate <>'          ' or c.operatetime <>'        ')and a.createdate >='2020-01-01'and a.createdate <='2020-03-31'and e.nodename not like '%归档%' and c.preisremark not in(1,8,9) and (currentnodetype=3 or  (currentnodetype=2 and a.status like '%执行%') )--执行、归档

)AGROUP BY 流程标题,区域,创建时间,节点名称,工作流名称ORDER BY 区域;

chyou 发布于 2021-4-14 17:35
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共1回答
最佳回答
0
zsh331Lv8专家互助
发布于2021-4-14 18:38

仔细再多读几次这个逻辑;如果「这个表存在且不止六个字段」会出现什么情况?

另外:注意字段&字段值类型的匹配!

————————

image.png

  • chyou chyou(提问者) 嗯,发现tmpworkflowusetime 的表结构与自定义的不一样,重新命名一个就好
    2021-04-14 20:47 
  • 2关注人数
  • 466浏览人数
  • 最后回答于:2021-4-14 18:38
    请选择关闭问题的原因
    确定 取消
    返回顶部