SQL Server 2012
一意の TransactionID を持つTransactionMaster テーブルがあります。LowTransaction 、MediumTransaction および HighTransaction テーブルで同じ TransactionID を使用できます。
TransactionMaster の各 TransactionID に対して、1 つの StatusMessage を表示する必要があります。CRTDTEC
StatusMessage は、作成された日付とCRTTIME
列に基づいて、3 つのテーブルのいずれかから取得される場合があります。
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')