我有一个SQL Server 2012
具有唯一 TransactionID 的 TransactionMaster 表。LowTransaction、MediumTransaction 和 HighTransaction 表中将提供相同的 TransactionID。
对于 TransactionMaster 中的每个 TransactionID,我需要显示一个 StatusMessage。StatusMessage 可能来自 3 个表中的任何一个 - 基于从CRTDTEC
和CRTTIME
列制定的日期..
SQL Server 2012
选择与最新日期相对应的 StatusMessage的最佳方法是什么?
注意:CRTDTEC 格式 -YYMMDD
和 CRTTIME 格式 -HHMMSS
代码
DECLARE @TransactionMaster TABLE (TransactionID INT)
DECLARE @LowTransaction TABLE (TransactionID INT, StatusMessage VARCHAR(80), CRTDTEC VARCHAR(8), CRTTIME VARCHAR(6))
DECLARE @MediumTransaction TABLE (TransactionID INT, StatusMessage VARCHAR(80), CRTDTEC VARCHAR(8), CRTTIME VARCHAR(6))
DECLARE @HighTransaction TABLE (TransactionID INT, StatusMessage VARCHAR(80), CRTDTEC VARCHAR(8), CRTTIME VARCHAR(6))
INSERT INTO @TransactionMaster VALUES (1)
INSERT INTO @TransactionMaster VALUES (2)
INSERT INTO @TransactionMaster VALUES (3)
INSERT INTO @LowTransaction VALUES (1,'1 Low','20131213','235959')
INSERT INTO @MediumTransaction VALUES (1,'1','20131213','235900')
INSERT INTO @HighTransaction VALUES (1,'1 High','20111213','235959')
INSERT INTO @LowTransaction VALUES (2,'2 Low','20111213','235959')
INSERT INTO @LowTransaction VALUES (3,'3 Low','20111213','235959')
INSERT INTO @MediumTransaction VALUES (3,'3 Medium','20111213','235959')
INSERT INTO @HighTransaction VALUES (3,'3 High','20140101','235959')
预期结果
(1,'1 Low','20131213','235959')
(2,'2 Low','20111213','235959')
(3,'3 High','20140101','235959')