我想,以確定在SQL數據表事件的排序。我的數據排列成每個標識符日期事件組合都顯示在單獨的行上。輸出應該是每個標識符的單個行,表示3個事件發生的順序(以及3個事件發生的順序),以及指示出現三個事件中的哪個事件的標誌。爲了表示順序,我只關心第一個事件的類型和最近事件的類型。 (因此,例如,ABC = ADAC,因爲我只是一個事實,即A是第一件事情和C是最後的事情感興趣。)確定SQL事件的日期排序(爲每個組)
假設我的數據是:
CREATE TABLE #ABC
(ID INT NOT NULL,
CODE_DATE DATE NOT NULL,
CODE_GROUP VARCHAR(10) NULL)
INSERT INTO #ABC VALUES (1,'20000-01-01','APPROVED')
INSERT INTO #ABC VALUES (1,'20001-01-01','DENIED')
INSERT INTO #ABC VALUES (1,'20003-01-01','ON HOLD')
INSERT INTO #ABC VALUES (1,'20002-01-01','APPROVED')
INSERT INTO #ABC VALUES (2,'20008-01-01','DENIED')
INSERT INTO #ABC VALUES (2,'20004-01-01','DENIED')
INSERT INTO #ABC VALUES (3,'20006-01-01','ON HOLD')
INSERT INTO #ABC VALUES (3,'20005-01-01','APPROVED')
INSERT INTO #ABC VALUES (3,'20009-01-01','DENIED')
INSERT INTO #ABC VALUES (4,'20001-01-01','ON HOLD')
INSERT INTO #ABC VALUES (4,'20004-01-01','ON HOLD')
INSERT INTO #ABC VALUES (4,'20007-01-01','DENIED')
INSERT INTO #ABC VALUES (5,'20005-01-01','ON HOLD')
INSERT INTO #ABC VALUES (5,'20008-01-01','ON HOLD')
INSERT INTO #ABC VALUES (5,'20009-01-01','APPROVED')
然後將所需的輸出是:
ID RESULT EVER_APPROVED EVER_DENIED EVER_ON_HOLD
1 'APPROVED THEN ON HOLD' 'Y' 'Y' 'Y'
2 'DENIED' 'N' 'Y' 'N'
3 'APPROVED THEN DENIED' 'Y' 'Y' 'Y'
4 'ON HOLD THEN DENIED' 'N' 'Y' 'Y'
5 'ON HOLD THEN APPROVED' 'Y' 'N' 'Y'
嘗試任何東西,或..? – jurgenreza 2013-04-28 21:05:39
我真的被卡住了。通常我會使用SAS數據步驟,但不再有權訪問SAS。我猜想我可以在日期字段上使用MIN和MAX來識別每個ID的第一個最後事件,但我不確定。 – user1126915 2013-04-28 21:21:24