Я пытаюсь объединить данные из таблицы с таблицей истории в один набор результатов, так как данные по-разному фиксируются в двух таблицах. Обе таблицы имеют разные критерии, как показано ниже;
Один запрос
выберите * в [RM-JOB], где [RM-JOB]. [RECHARGE-TENANT] = 1
Таблица истории
Выберите * из [ИСТОРИЯ RM-STAGE], где [STAGE-MAP] = 'RERQ'
В таблице истории может быть несколько записей для [STAGE-MAP] = 'RERQ', поэтому я хочу самую последнюю.
Ниже приведен запрос, который я пытался выполнить.
select * from [RM-JOB] where [RM-JOB].[RECHARGE-TENANT] = 1 or [JOB-NO] in (
select [RM-JOB].[JOB-NO], [RM_STAGES].DESCRIPTION CurrentStatus, CSTAGE.DESCRIPTION CurrentStage, * from [RM-JOB]
inner join (select [RM-STAGE-HISTORY].[JOB-NO], [RM-STAGE-HISTORY].[STAGE-CODE] from [RM-STAGE-HISTORY]
where [STAGE-MAP] = 'RERQ' group by [JOB-NO],[RM-STAGE-HISTORY].[STAGE-CODE]) as StageMap on [RM-JOB].[JOB-NO] = StageMap.[JOB-NO]
inner join [RM_STAGES] on [RM_STAGES].[STAGE-CODE] = [RM-JOB].[JOB-STATUS]
inner join [RM_STAGES] CSTAGE on CSTAGE.[STAGE-CODE] = StageMap.[STAGE-CODE]
inner join [IH-LOCATION] on [IH-LOCATION].[PLACE-REF] = [RM-JOB].[PLACE-REF]
inner join [CO-PLACE] on [CO-PLACE].[PLACE-REF] = [IH-LOCATION].[PLACE-REF]
Пример таблицы истории:
JOB-NO STAGE-DATE STAGE-TIME STAGE-CODE USER-ID MEMO STAGE-MAP USER-DATE USER-TIME STAGE-HIST-NUMBER
10128570 00:00.0 15:53:08 31 TMWSERVICE Ticket No: 2 TMAC 00:00.0 15:53:19 1304576
10128570 00:00.0 15:53:16 34 TMWSERVICE Ticket No: 2 TMST 00:00.0 15:53:21 1304577
10128570 00:00.0 15:54:22 52 TMWSERVICE Ticket No: 2 RERQ 00:00.0 15:54:24 1304607
10128570 00:00.0 15:56:14 31 TMWSERVICE Ticket No: 2 TMAC 00:00.0 15:56:24 1304646
и нормальный пример таблицы:
JOB-NO PMT-METHOD CURRENT-STAGE-CODE JOB-STATUS CLIENT-CODE CONTRACTOR INITIAL-PRIORITY LATEST-PRIORITY TRADE-CODE PLACE-REF
10128570 95 93 HSG VIVID01 R R CR OB6236001
STAGE-HIST-NUMBER может использоваться для максимальной записи.
Любой совет приветствуется.
Спасибо