我想为一个研究构建一个数据集,并将其分成两组,我们称它们为Hatfields和McCoys。有更多的Hatfields比McCoys,我想匹配每个哈特菲尔德与我定义的足够类似于McCoys的人。我希望所有的比赛都是1-1。每个Hatfield应该匹配1个McCoy,并且不应该有超过一次的匹配。有可能会有一些多重比赛,但我想消除这些。我对“最好”的比赛并不挑剔,只是这是一场比赛。使用SQL根据多个条件在2个相互不同的表中匹配记录
会员日期分数
甲2014年2月1日1.00
乙2014年4月4日1.50
Ç2014年9月15日1.00
会员START_DATE END_DATE分数
D 1/1/2014 12/31/2014 1.00
E 6/1/2014 12/31/2014 0.50
˚F2014年1月1日2014年5月31日1.50
ģ2014年1月1日2014年12月31日1.00
ħ2014年8月1日2014年12月31日1.00
上面的表格显示了一个示例(抱歉格式不佳)。我想将ABC的每一个匹配到DEFGH之一,我的标准是(1)ABC的日期在第二张表中的开始日期和结束日期之间,以及(2)分数匹配。
我想过尝试对每个表进行排序,然后按照索引字段的方式工作。我可以在每个表上创建一个索引字段,然后如果第一个表中的第一条记录匹配第二条记录中的第三条记录,那么我知道所有未来的匹配都会有index_2> 3。这会阻止任何人被重用。
虽然我不能把它放在一起。
感谢您的帮助!我喜欢学习SQL并欣赏新技巧!
ddl和样本采样数据会使这更容易。 sqlfiddle.com是一个很好的开始。 – 2014-09-25 17:46:30