我有我想象的是一個有點基本的SQL問題,並希望得到一些幫助。我正在使用MSSQL。有條件的SQL加入
我有兩個表:
Table A Table B ---------------------------------------------- A.ID |A.Date| B.ID|B.Date|B.Number
A.ID是獨一無二的;沒有重複的行。 B.ID不唯一,因此連接該列上的表可能導致返回多行。爲了獲得正確的記錄,必須加入兩欄,但這也有不良結果的問題。例如:
Table A | Table B ---------------------------------------------- 1 |01-01-2014 | 1 |01-01-2014|25 2 |01-30-2014 | 1 |04-30-2013|40 3 |03-24-2014 | 1 |10-12-2018|12 4 |05-28-2014 | 2 |11-17-2013|55
期望的結果是加入兩列並返回一行。我遇到的問題是,如果我使用示例數據加入兩個列是相等的,那麼只有第一行會返回。如果我將ID列設置爲相等並使用< =,則多行將返回ID 1,這是不希望的。我無法使用最大日期,因爲某些字段包含將來的日期,在兩個日期字段相等之前不應返回記錄。在示例數據中,所需的結果將返回數字25和55.所以基本上我需要加入ID列相同和日期字段相等,但如果表B中沒有相同的日期,則返回最新日期的編號,假設它不是未來的日期。
希望這是有道理的。提前致謝。
那麼,結果如何?你有沒有得到一個適合你的答案? – ngreen 2014-10-31 16:40:43
我對這個大規模的延遲表示歉意......它在一段時間裏倒下了。我最終使用ROW OVER的相關子查詢來分割結果,只抓取所需結果。 – user2820853 2015-07-16 19:17:47