繁体   English   中英

在sql中将特定数据从一个表复制到另一个表

[英]Copy specific data from one table to another in sql

我有两个表,一个是CurrentReport ,另一个是Challan表,另一个是表中显示的当前报告表。 复制currentReport表的以下列的值

 [Title],
    [ISBN],
    [Author1],
    [FinalStatus],
    [MssType] 

但是现在我想将具有最小日期的challan表的stepno复制到两个表中的currentreport表的work1中,编号为no。 都一样 在challan表中,在challan表中有多个输入具有相同参考编号的条目,而我想获得具有最小日期的stepno。

challan表中的列是

       [ChallanNo]
      ,[ReferenceNo]
      ,[PersonID]
      ,[PersonCategory]
      ,[ChallanDate]
      ,[PreparedBy]
      ,[CreatedOn]
      ,[Publisher]
      ,[TemplateName]
      ,[TemplateSubject]
      ,[TemplateBody]
      ,[EmailAttachment]
      ,[PreviousProjectedDate]
      ,[PreviousReminderDate]
      ,[PreviousActionDate]
      ,[NextProjectedDate]
      ,[NextReminderDate]
      ,[NextActionDate]
      ,[ReminderText]
      ,[ReceivedDate]
      ,[StepNo]
      ,[ChallanStatus]
      ,[IsActive]
      ,[IsReceived] 

CurrentReport表中的CurrentReport

 [ReferenceNo]
          ,[Title]
          ,[ISBN]
          ,[Author1]
          ,[FinalStatus]
          ,[MssType]
          ,[Work1]
          ,[GivenTo1]
          ,[ChallanDate1]
          ,[ReceivedDate1]
          ,[Work2]
          ,[GivenTo2]
          ,[ChallanDate2]
          ,[ReceivedDate2]
          ,[Work3]
          ,[GivenTo3]
          ,[ChallanDate3]
          ,[ReceivedDate3]
          ,[Work4]
          ,[GivenTo4]
          ,[ChallanDate4]
          ,[ReceivedDate4]

因此,请告诉我如何更新currentreport表,因为它具有200个条目,而challan表具有700个条目。

/ *检查是否有效* /步骤1-编写select过滤掉minDate-

SELECT c.ChallanNo, c.REFERENCENO , c.STEPNO FROM CHALLAN c
INNER JOIN CURRENTREPORT cr
on c.REFERENCENO = cr.REFERENCENO
WHERE RECEIVEDDATE IN (SELECT MIN(RECEIVEDDATE)
FROM CHALLAN cn
GROUP BY (STEPNO))

/ *如果以上操作有效* / STEP 2-根据上述结果进行更新

WITH CTE AS (
SELECT c.ChallanNo, c.REFERENCENO , c.STEPNO FROM CHALLAN c
INNER JOIN CURRENTREPORT cr
on c.REFERENCENO = cr.REFERENCENO
WHERE RECEIVEDDATE IN (SELECT MIN(RECEIVEDDATE)
FROM CHALLAN cn
GROUP BY (STEPNO))
)

UPDATE CURRENTREPORT SET WORK1 = ch.STEPNO FROM CURRENTREPORT c INNER JOIN cte ch 
on c.referenceNo = ch.referenceNo

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM