根据条件添加数据

yuuy163 2009-08-23 05:15:33
直接在SQl分析器中写,要实现将表1(机统6)中数据复制到表2(T_jixong6ximu)中去,其中T_jixong6ximu 的外键JT6ReportID是表3(T_jixong6)的主键,而T_jixong6表的数据是和机统6相关的。

我写的语句如下:
insert T_jitong6ximu(JT6ReportID,Reporter,Peishu,CheckEndTime,Buwei,TroublePhenomenon,
RepairStartTime,RepairEndTime,RepairStatement,Repairer1,Checker,[State],Hidden)
select T_jitong6.JT6ReportID,机统6.提票人,机统6.所属车间,
机统6.交接时间=convert(varchar(10),CAST(交接时间 as datetime),108),
机统6.部位,机统6.故障现象,机统6.开始时间=convert(varchar(10),CAST(开始时间 as datetime),108),
机统6.结束时间=convert(varchar(10),CAST(结束时间 as datetime),108),
机统6.检修过程,机统6.检修者,机统6.工长,'维修结束','无'
from 机统6,T_jitong6
where 机统6.机型=T_jitong6.jixing and 机统6.车号=T_jitong6.chehao and 机统6.日期(convert(varchar(10),CAST(日期 as datetime),120))=T_jitong6.ReportTime
and 机统6.入库时间(convert(varchar(10),CAST(入库时间 as datetime),108))=T_jitong6.ComeinTime


弹出错误有2种:
(1)不在字段前加表名,分析查询没有错误,执行查询弹出错误:
服务器: 消息 208,级别 16,状态 1,行 1
对象名 '机统6.日期' 无效。
服务器: 消息 208,级别 16,状态 1,行 1
对象名 '机统6.入库时间' 无效。
(2)在字段前加表名,分析查询弹出错误:
服务器: 消息 170,级别 15,状态 1,行 6
第 6 行: '=' 附近有语法错误。

PS:机统6.日期,机统6.入库时间,机统6.交接时间,机统6.开始时间,机统6.结束时间为datetime型。其他数据均为varchar型。

请大侠们说说看是怎么回事?茫然啊。
...全文
197 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
yuuy163 2009-08-23
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 feixianxxx 的回复:]
SQL codeinsert T_jitong6ximu(JT6ReportID,Reporter,Peishu,CheckEndTime,Buwei,TroublePhenomenon,
RepairStartTime,RepairEndTime,RepairStatement,Repairer1,Checker,[State],Hidden)select
T_jitong6.JT6ReportID,
机统6.提票人,
机统6.所属车间,convert(varchar(10),CAST(机统6.交接时间asdatetime),108),
机统6.部位,
机统6.故障现象,convert(varchar(10),CAST(机统6.开始时间asdatetime),108),convert(varchar(10),CAST(机统6.结束时间asdatetime),108),
机统6.检修过程,
机统6.检修者,
机统6.工长,'维修结束','无'from 机统6,T_jitong6where 机统6.机型=T_jitong6.jixingand 机统6.车号=T_jitong6.chehaoand (convert(varchar(10),CAST(机统6.日期asdatetime),120))=T_jitong6.ReportTimeand (convert(varchar(10),CAST(机统6.入库时间asdatetime),108))=T_jitong6.ComeinTime
试试
[/Quote]


偶像啊,我对你崇拜之无以言表……
feixianxxx 2009-08-23
  • 打赏
  • 举报
回复
看7楼
yuuy163 2009-08-23
  • 打赏
  • 举报
回复
还是同样的错误……
SQL77 2009-08-23
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 yuuy163 的回复:]
有这些列,我分析了一下where条件中只有日期和入库时间都是datetime型,其他的都没有错误,我估计是不是又是转化的问题?
[/Quote]
是你条件那里错了
feixianxxx 2009-08-23
  • 打赏
  • 举报
回复
insert  T_jitong6ximu(JT6ReportID,Reporter,Peishu,CheckEndTime,Buwei,TroublePhenomenon, 
RepairStartTime,RepairEndTime,RepairStatement,Repairer1,Checker,[State],Hidden)
select
T_jitong6.JT6ReportID,
机统6.提票人,
机统6.所属车间,
convert(varchar(10),CAST(机统6.交接时间 as datetime),108),
机统6.部位,
机统6.故障现象,
convert(varchar(10),CAST(机统6.开始时间 as datetime),108),
convert(varchar(10),CAST(机统6.结束时间 as datetime),108),
机统6.检修过程,
机统6.检修者,
机统6.工长,
'维修结束',
'无'
from 机统6,T_jitong6
where 机统6.机型=T_jitong6.jixing
and 机统6.车号=T_jitong6.chehao
and (convert(varchar(10),CAST(机统6.日期 as datetime),120))=T_jitong6.ReportTime
and (convert(varchar(10),CAST(机统6.入库时间 as datetime),108))=T_jitong6.ComeinTime

试试
SQL77 2009-08-23
  • 打赏
  • 举报
回复
(convert(varchar(10),CAST(机统6.入库时间 as datetime),108))=T_jitong6.ComeinTime 
yuuy163 2009-08-23
  • 打赏
  • 举报
回复
有这些列,我分析了一下where条件中只有日期和入库时间都是datetime型,其他的都没有错误,我估计是不是又是转化的问题?
SQL77 2009-08-23
  • 打赏
  • 举报
回复
where 机统6.机型=T_jitong6.jixing and 机统6.车号=T_jitong6.chehao and (convert(varchar(10),CAST(日期 as datetime),120))=T_jitong6.ReportTime
and 机统6.入库时间(convert(varchar(10),CAST(入库时间 as datetime),108))=T_jitong6.ComeinTime

你这条件写得

这里错了
SQL77 2009-08-23
  • 打赏
  • 举报
回复
1)不在字段前加表名,分析查询没有错误,执行查询弹出错误:
服务器: 消息 208,级别 16,状态 1,行 1
对象名 '机统6.日期' 无效。
服务器: 消息 208,级别 16,状态 1,行 1
对象名 '机统6.入库时间' 无效。

你这个表中有没有这些列呀???

[机统6]这样试试?
yuuy163 2009-08-23
  • 打赏
  • 举报
回复
大侠们可在?
yuuy163 2009-08-23
  • 打赏
  • 举报
回复
在线等,不知道偶像还在不在线?看到问题可否给我解答?

34,575

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧