大家好日子。我试图通过比较日期来加入两个数据集。 假设我有两个数据集:
---Table A--- ---Table B---
ID Date1 ID Date2
01 29/1/2010 01 28/1/2011
01 29/1/2011 01 28/1/2012
01 29/1/2012 01 28/1/2013
01 29/1/2013 01 28/1/2014
01 29/1/2014 01 28/1/2015
01 29/1/2015 01 28/1/2016
我试图通过比较日期1和日期2来加入表A和表B.如果date2< date1然后加入。 预期结果应如下(表3):
---Table C---
ID Date1 Date2
01 29/1/2010 .
01 29/1/2011 28/1/2011
01 29/1/2012 28/1/2012
01 29/1/2013 28/1/2013
01 29/1/2014 28/1/2014
01 29/1/2015 28/1/2015
但是当我尝试使用这段代码时
PROC SQL;
CREATE TABLE TABLE_C AS
SELECT TABLE_A.*, TABLE_B.DATE2
FROM TABLE_A LEFT JOIN TABLE_B
ON
TABLE_A.ID = TABLE_B.ID AND
TABLE_A.DATE1 < TABLE_B.DATE2;
我最终得到了这个结果:
---Table C---
ID Date1 Date2
01 29/1/2010 .
01 29/1/2011 28/1/2011
01 29/1/2012 28/1/2011 *
01 29/1/2013 28/1/2011 *
01 29/1/2014 28/1/2011 *
01 29/1/2015 28/1/2011 *
01 29/1/2012 28/1/2012
01 29/1/2013 28/1/2012 *
01 29/1/2014 28/1/2012 *
01 29/1/2015 28/1/2012 *
01 29/1/2013 28/1/2013
01 29/1/2014 28/1/2013 *
01 29/1/2015 28/1/2013 *
01 29/1/2014 28/1/2014
01 29/1/2015 28/1/2014 *
01 29/1/2015 28/1/2015
如何删除标有(*)的?有人可以帮忙吗?谢谢!
答案 0 :(得分:0)
根据您的预期结果,您似乎只需要替换
TABLE_A.DATE1 < TABLE_B.DATE2;
与
TABLE_A.DATE1 > TABLE_B.DATE2 and /* date2 < date1 */
YEAR(TABLE_A.DATE1) = YEAR(TABLE_B.DATE2);