2015-04-28 3 views
0

У меня есть две таблицы, одна из которых - CurrentReport, а другая - Challan, а другая - текущая таблица отчетов, отображаемая в таблице. Я скопировать значение следующего столбца таблицы currentReportСкопируйте определенные данные из одной таблицы в другую в sql

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

, но теперь я хочу, чтобы скопировать stepno из Challan таблицы, имеющей даты мин в работу1 из currentreport таблицы в обеих таблицах refrence нет. одинаковы. В таблице претендентов есть несколько enteries в таблице претендентов, имеющих одну и ту же ссылку, среди которых я хочу получить 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 таблице:

[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 enteries.

+0

Можете ли вы показать свою попытку? – Pratik

+0

обновление CurrentReport набор Спецодежда1 = ch.StepNo из CurrentReport внутреннее соединение Challan ч на ch.ReferenceNo = CurrentReport.ReferenceNo –

+1

Но это не поможет вам минимальный шаг даты нет. Разбейте свою проблему на несколько частей - 1) Напишите выбор, чтобы отфильтровать минимальный шаг даты no из таблицы Challan. 2) Используйте этот выбор для обновления записей. Попробуйте сами по себе, а затем попросите дополнительную помощь – Pratik

ответ

1

/* проверить, если это работает */ Шаг 1 - написать выберите отфильтровывать 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 
+0

Дайте мне знать, если вы столкнулись с проблемами! – Pratik

Смежные вопросы