表复制求助 CREATE TABLE [dbo].[PART_PROCESS](
[ID] [int] IDENTITY(1,1) NOT NULL,
[PARTID] [int] NOT NULL,
[STEPID] [int] NOT NULL,
[PROCESSID] [int] NOT NULL,
[SINGLETIME] [float] NULL,
[INSTID] [int] NULL,
[PROCEPROGRAM] [nvarchar](max) NULL,
[INSTUSETIME] [float] NULL,
[CHANGEPARTTIME] [float] NULL,
[ORDERNO] [float] NOT NULL
) ON [PRIMARY]
CREATE TABLE [dbo].[PARTS](
[ID] [int] IDENTITY(1,1) NOT NULL,
[CODE] [nvarchar](max) NOT NULL,
[NAME] [nvarchar](max) NOT NULL,
[SPECIFICATION] [nvarchar](max) NOT NULL,
[DESCRIBE] [nvarchar](max) NULL
) ON [PRIMARY]
insert into parts(CODE,NAME,SPECIFICATION,DESCRIBE)values('200018','电磁铁','V5210.2-03','')
insert into parts(CODE,NAME,SPECIFICATION,DESCRIBE)values('200070','电磁铁','V5110.2-03','')
insert into PART_PROCESS(PARTID,STEPID,PROCESSID,SINGLETIME,INSTID,PROCEPROGRAM,INSTUSETIME,CHANGEPARTTIME,ORDERNO)values
('1','37','43','19','19','','0','7','5')
insert into PART_PROCESS(PARTID,STEPID,PROCESSID,SINGLETIME,INSTID,PROCEPROGRAM,INSTUSETIME,CHANGEPARTTIME,ORDERNO)values
('1','27','40','10','32','','0','7','2')
insert into PART_PROCESS(PARTID,STEPID,PROCESSID,SINGLETIME,INSTID,PROCEPROGRAM,INSTUSETIME,CHANGEPARTTIME,ORDERNO)values
('1','28','41','15','19','','0','7','3')
insert into PART_PROCESS(PARTID,STEPID,PROCESSID,SINGLETIME,INSTID,PROCEPROGRAM,INSTUSETIME,CHANGEPARTTIME,ORDERNO)values
('1','29','42','10','34','','0','7','4')
insert into PART_PROCESS(PARTID,STEPID,PROCESSID,SINGLETIME,INSTID,PROCEPROGRAM,INSTUSETIME,CHANGEPARTTIME,ORDERNO)values
('1','30','14','26','15','','0','0','1')[/size]
比如我现在查询
select parts.ID FROM parts where parts.name like '%电磁铁%'
会出来结果
1
2
我希望能够实现一个复制功能,把PARTID=1的在PART_PROCESS表里面内容复制一遍,但是PARTID改成2.也就是说2在PART_PROCESS表里面的数据等于物料ID1在PART_PROCESS表里面的数据.
语句在执行时,我可以手工指定匹配字段'电磁铁'但是物料2或者物料34等要自动出来。因为实际会有很多。
在线等 ------最佳解决方案--------------------
INSERT INTO PART_PROCESS(partid,STEPID,PROCESSID,SINGLETIME,INSTID,PROCEPROGRAM,INSTUSETIME,CHANGEPARTTIME,ORDERNO)
SELECT b.id partid,STEPID,PROCESSID,SINGLETIME,INSTID,PROCEPROGRAM,INSTUSETIME,CHANGEPARTTIME,ORDERNO
FROM PART_PROCESS a INNER JOIN parts b ON A.id<>b.id AND b.id<>1
WHERE partid=1 AND b.NAME LIKE '%电磁铁%'
根据你的数据改了一下. ------其他解决方案--------------------
INSERT INTO PART_PROCESS(partid,STEPID,PROCESSID,SINGLETIME,INSTID,PROCEPROGRAM,INSTUSETIME,CHANGEPARTTIME,ORDERNO)
SELECT 2 partid,STEPID,PROCESSID,SINGLETIME,INSTID,PROCEPROGRAM,INSTUSETIME,CHANGEPARTTIME,ORDERNO
FROM PART_PROCESS WHERE partid=1