【发布时间】:2013-08-04 13:33:02
【问题描述】:
我尝试加入两个没有唯一字段的表并根据日期进行比较。
考虑以下
表 A
System ID Start Process
132 1/17/2010 10/17/2010
132 2/21/2011 2/23/2011
132 1/16/2010 1/30/2010
132 1/16/2006 1/16/2006
132 1/16/2011 1/24/2010
132 1/30/2011 1/31/2011
132 1/30/2008 2/6/2008
132 2/5/2007 2/8/2007
132 2/5/2009 2/6/2009
表 B
System ID T start T end
132 05/01/10 4/30/2011
132 05/01/11 4/30/2013
输出表
System ID Start Process Check
132 1/17/2010 10/17/2010 Y
132 2/21/2011 2/23/2011 Y
132 1/16/2010 1/30/2010 Y
132 1/16/2006 1/16/2006 N
132 1/16/2011 1/24/2010 Y
132 1/30/2011 1/31/2011 Y
132 1/30/2008 2/6/2008 N
132 2/5/2007 2/8/2007 N
132 2/5/2009 2/6/2009 N
我正在尝试考虑表 A 中的所有记录,如果表 B 的“开始”出现在表 B“T Start”和“T End”,则输出表中的“Check”列将更新为“Y”。
我知道表只能基于唯一字段进行连接,所以我尝试在其中一个表中添加一个自动增量字段以避免重复,但问题是两个表都包含非唯一记录和每条记录都应考虑标识日期。每个表中的记录总数约为 60K。我有点震惊。感谢您的热心帮助。
【问题讨论】:
-
您可以突出显示代码块和
ctl-k或单击{}将它们大量缩进4 个空格以进行代码/表格格式化\ -
联接不一定要出现在唯一的行上,但不清楚您在这里实际要完成什么。什么是A表,什么是B表,它们之间的关系是什么?在您的输出中,
Check是什么?你需要更清楚地知道你想在这里做什么。 -
感谢您的更新。我会记下它。两个表之间的唯一关系是“系统 ID”,我正在尝试将表 A 的“开始”与表 B 的“T 开始”和“T 结束”进行比较,并更新输出表中的“检查”列。
标签: sql sql-server database