2014-03-25 56 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