我正在尝试将一个表中的数据与一个历史表合并,以形成一个结果集,因为在两个表中捕获的数据有所不同。这两个表具有以下不同的条件;
一个查询是 从[RM-JOB]中选择*,其中[RM-JOB]。[充值租户] = 1
历史记录表是
从[RM-STAGE-HISTORY]中选择*,其中[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可以用于最大记录。
任何建议都值得赞赏。
谢谢