2014-03-25 75 views
0

我有一張表,列出了我希望一起加入新列的日期列表。我粘貼了以下的例子:SQL自我加入條件

Date 
    03/03/2014 
    03/03/2014 
    03/03/2014 
    04/03/2014 
    04/03/2014 
    04/03/2014 
    04/03/2014 

這是第一個表,但是我想自己加入它,所以它看起來是這樣的:

Index_Date Date 
    03/03/2014 03/03/2014 
    03/03/2014 03/03/2014 
    03/03/2014 03/03/2014 
    04/03/2014 03/03/2014 
    04/03/2014 03/03/2014 
    04/03/2014 03/03/2014 
    04/03/2014 04/03/2014 
    04/03/2014 04/03/2014 
    04/03/2014 04/03/2014 
    04/03/2014 04/03/2014 

這僅僅是數據的例子,但希望能夠做到這一點的任何幫助!如果您需要更進一步,請告訴我。

謝謝,山姆

下面是一些測試代碼,我已經放在一起:

CREATE TABLE #DATES (Date VARCHAR (8)) 

    INSERT INTO #DATES VALUES ('20140303') 
    INSERT INTO #DATES VALUES ('20140303') 
    INSERT INTO #DATES VALUES ('20140303') 
    INSERT INTO #DATES VALUES ('20140304') 
    INSERT INTO #DATES VALUES ('20140304') 
    INSERT INTO #DATES VALUES ('20140304') 
    INSERT INTO #DATES VALUES ('20140304') 

    SELECT 
     T1.Date AS T1Date 
,T2.Date AS T2Date 
    FROM 
#DATES AS T1 
     INNER JOIN #DATES AS T2 
     ON T1.Date = T2.Date 

最終的輸出應該是如上圖所示的10行。

+0

什麼是連接標準? – CSL

+0

我希望它加入以便選擇<= '03/03/2014'的所有內容(3條記錄),然後所有<= '04/04/2014'的內容都是select(7條記錄),這會給你一個共有10條記錄。這些日期在另一個表中。 – user3456377

回答

0

這裏是你如何加入一個表與自身

SELECT T1.Date as T1Date, T2.Date as T2Date 
    FROM FooBar T1 
    INNER JOIN FooBar T2 ON T1.Date = T2.Date 

更新根據您的信息,你需要一個工會,而不是自聯接:

DECLARE @firstDate DATETIME 
DECLARE @secondDate DATETIME 
SET @firstDate = '2014-03-03' 
SET @secondDate = '2014-03-04' 

SELECT @firstDate as Index_Date, Date FROM @Dates 
     WHERE Date <= @firstDate 
UNION 
SELECT @secondDate as Index_date, Date FROM @Dates 
     WHERE Date <= @secondDate 

兩個日期參數可以很容易地如果需要從另一個表中加載。

這也應該也給你你想要什麼上聯:

SELECT ID.Index_Date, D.Date 
    FROM IndexDateTable ID 
    INNER JOIN Dates D ON D.Date <= ID.Index_Date 
+0

我希望沒有聯盟就可以做到這一點,這是可能的!?因爲有很多日期!謝謝你的幫助。 – user3456377

+0

好吧,我一定會錯過一些東西 - 有多少桌有日期?您在上面的評論中提到「這些日期在另一個表中」,那麼是否有一張表格提供過濾器標準的日期,如果有的話,那裏有多少條記錄? – CSL

+0

對不起,沒有清楚解釋 - 這個想法是,在整個月中,表格將會增長,數據需要追加到前一天。所以日期表基本上是第一個表中日期的DISTINCT列表。 – user3456377