-1
我有表table1:尋找更接近日至特定日期
CREATE TABLE Table1
([Customer] int, [RequestDt] int, [ClosedDt] int, [AppId] int)
;
INSERT INTO Table1
([Customer], [RequestDt], [ClosedDt], [AppId])
VALUES
(1, 201401, 201403, 1),
(1, 201403, NULL, 2),
(1, 201404, NULL, 3),
(2, 201402, 201404, 4),
(2, 201405, NULL, 5),
(2, 201409, NULL, 6),
(3, 201403, NULL, 7)
;
,我想選擇哪些客戶擁有的AppID與閉T,然後有一個新的appid與requestDt更大然後閉T。
我沒有使用此:
SELECT * FROM表1牛逼
加入舊的O上t.customer = o.customer
和t.appId <> o.appid
和t.requestDt> o.closeddt
但是,這將返回我:
CUSTOMER REQUESTDT CLOSEDDT APPID
1 201404 (null)
2 201405 (null)
2 201409 (null)
這基本上是正確的,但是當客戶有兩個以上的appid與RequestDt閉T後我要選擇具有接近RequestDt到閉T只有一個......我不知道如何要做到這一點.. :(
結果應該是這樣的:
CUSTOMER REQUESTDT CLOSEDDT APPID
1 201404 (null)
2 201405 (null)
希望其明確的:) 謝謝!
我會強烈建議使用日期數據類型存儲日期,而不是整數。幫我理解這裏的邏輯。你爲什麼期待APPID 3和5?下一個RequestDt是否大於ClosedDt? – 2014-11-03 20:55:49
對不起,我不期待id 3和5,問題得到糾正。 – Nightmaresux 2014-11-04 06:10:46