add batch remove batch split batch comment selection show hidden batches hide batch highlight batch
db<>fiddle
donate feedback about
By using db<>fiddle, you agree to license everything you submit by Creative Commons CC0.
CREATE TABLE item(
TID INT,
SID VARCHAR(30),
REVISION INT,
IMPORT_FLAG INT,
AMOUNT INT,
ITEM VARCHAR(30),
FLAG_UPDATE_TIME DATETIME
);
INSERT INTO item VALUES
(23456, '0', 0, 0, 657, 'BX', '08-31-2023 10:20:10'),
(65743, '0', 0, 0, 467, 'BX', '08-30-2023 11:01:39'),
(76543, 'AB', 1, 1, 8753, 'DU', '08-30-2023 09:01:39'),
(86364, 'F', 2, 1, 78, 'TY', '09-03-2023 11:12:41'),
(86364, 'N', 0, 1, 5000, 'RT', '08-22-2023 18:45:16');

SELECT * FROM item
TID SID REVISION IMPORT_FLAG AMOUNT ITEM FLAG_UPDATE_TIME
23456 0 0 0 657 BX 2023-08-31 10:20:10.000
65743 0 0 0 467 BX 2023-08-30 11:01:39.000
76543 AB 1 1 8753 DU 2023-08-30 09:01:39.000
86364 F 2 1 78 TY 2023-09-03 11:12:41.000
86364 N 0 1 5000 RT 2023-08-22 18:45:16.000
CREATE TABLE UNIQUE_ITEM_CODE(
TID INT,
SID VARCHAR(30),
REVISION INT,
UNIQUE_CODE VARCHAR(30)
);
INSERT INTO UNIQUE_ITEM_CODE VALUES
(23456, '0', 0, 'ASF456B'),
(65743, '0', 0, 'FDGHJY6'),
(76543, 'AB', 1, 'ET567BG'),
(86364, 'F', 2, 'MHFB78'),
(86364, 'N', 0, '567HFV8');

SELECT * FROM UNIQUE_ITEM_CODE
TID SID REVISION UNIQUE_CODE
23456 0 0 ASF456B
65743 0 0 FDGHJY6
76543 AB 1 ET567BG
86364 F 2 MHFB78
86364 N 0 567HFV8
CREATE TABLE UNIQUE_HISTORY(
UNIQUE_CODE VARCHAR(30),
PRIORITY VARCHAR(30),
CLASS VARCHAR(30),
TYPE VARCHAR(30),
STATUS VARCHAR(30),
LAST_UPDATE_TIME DATETIME
);
INSERT INTO UNIQUE_HISTORY VALUES
('ASF456B', 'HIGH', 'TTH', 'B', 'CLOSED', '08-31-2023 13:23:45'),
('FDGHJY6', 'LOW', 'CAD', 'S', 'OPEN', '08-31-2023 09:32:25'),
('ET567BG', 'LOW', 'AUS', 'B', 'OPEN', '08-20-2023 07:00:11'),
( 'MHFB78', 'LOW', 'AUS', 'B', 'TERMINATED', '09-03-2023 11:09:18'),
('567HFV8', 'LOW', 'EUR', 'S', 'OPEN', '08-22-2023 18:28:56'),
('ASF456B', 'LOW', 'CAD', 'S', 'CLOSED', '08-15-2023 23:32:42'),
('FDGHJY6', 'HIGH', 'NXZ', 'B', 'HOLD', '08-30-2023 03:14:25'),
('FDGHJY6', 'HIGH', 'NXZ', 'B', 'COMPLETE', '08-30-2023 03:16:15'),
('FDGHJY6', 'LOW', 'TTH', 'S', 'CLOSED', '08-30-2023 14:20:02');

SELECT * FROM UNIQUE_HISTORY
UNIQUE_CODE PRIORITY CLASS TYPE STATUS LAST_UPDATE_TIME
ASF456B HIGH TTH B CLOSED 2023-08-31 13:23:45.000
FDGHJY6 LOW CAD S OPEN 2023-08-31 09:32:25.000
ET567BG LOW AUS B OPEN 2023-08-20 07:00:11.000
MHFB78 LOW AUS B TERMINATED 2023-09-03 11:09:18.000
567HFV8 LOW EUR S OPEN 2023-08-22 18:28:56.000
ASF456B LOW CAD S CLOSED 2023-08-15 23:32:42.000
FDGHJY6 HIGH NXZ B HOLD 2023-08-30 03:14:25.000
FDGHJY6 HIGH NXZ B COMPLETE 2023-08-30 03:16:15.000
FDGHJY6 LOW TTH S CLOSED 2023-08-30 14:20:02.000
SELECT TOP(1) WITH TIES
i.TID,
i.SID,
c.REVISION,
i.IMPORT_FLAG,
i.AMOUNT,
i.ITEM,
i.FLAG_UPDATE_TIME,
c.UNIQUE_CODE,
hist.PRIORITY,
hist.CLASS,
hist.TYPE,
hist.LAST_UPDATE_TIME
FROM item i
INNER JOIN UNIQUE_ITEM_CODE c
ON i.TID = c.TID
AND i.SID = c.SID
INNER JOIN UNIQUE_HISTORY hist
ON c.UNIQUE_CODE = hist.UNIQUE_CODE
ORDER BY ROW_NUMBER() OVER(PARTITION BY hist.UNIQUE_CODE
ORDER BY CASE WHEN i.FLAG_UPDATE_TIME < hist.LAST_UPDATE_TIME THEN 1 ELSE 0 END, hist.LAST_UPDATE_TIME DESC)
TID SID REVISION IMPORT_FLAG AMOUNT ITEM FLAG_UPDATE_TIME UNIQUE_CODE PRIORITY CLASS TYPE LAST_UPDATE_TIME
76543 AB 1 1 8753 DU 2023-08-30 09:01:39.000 ET567BG LOW AUS B 2023-08-20 07:00:11.000
65743 0 0 0 467 BX 2023-08-30 11:01:39.000 FDGHJY6 HIGH NXZ B 2023-08-30 03:16:15.000
86364 N 0 1 5000 RT 2023-08-22 18:45:16.000 567HFV8 LOW EUR S 2023-08-22 18:28:56.000
23456 0 0 0 657 BX 2023-08-31 10:20:10.000 ASF456B LOW CAD S 2023-08-15 23:32:42.000
86364 F 2 1 78 TY 2023-09-03 11:12:41.000 MHFB78 LOW AUS B 2023-09-03 11:09:18.000