将特定数据从一个 table 复制到另一个 sql

Copy specific data from one table to another in sql

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

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

但现在我想将具有最小日期的 challan table 的 stepno 复制到两个 table 参考号中的 currentreport table 的 work1 中。是一样的。在 challan table 中,在 challan table 中有多个条目具有相同的参考号,其中我想获得具有最小日期的 stepno。

challantable中的列是

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

CurrentReporttable中的列是:

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

所以请告诉我如何更新 currentreport table 因为它有 200 个条目而 challan table 有 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))

/* 如果上面的方法有效 */ 第 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