我正在尝试创建一个数据集,该数据集将正确的营销渠道与某个已完成的应用程序相关联,并且非常难以找到最佳方法。
我有3张桌子:
表#1:联系信息;
表#2:应用程序信息;
表#3:频道跟踪历史信息
上面引用的表格中的相关字段是:
表#1:ID_table_1
表#2:ID_Table_1
,Application_Created_Date_Time_Tbl_2
表#3:ID_Table_1
,Channel_Update_Created_Date_Time_Tbl_3
,Channel_Tracking_info
(注意:所有3个表都在ID_Table_1
列上加入)
Table#1
是个人信息存储的地方,也是他们访问我们网站的最后一个营销渠道。我的问题是我需要知道他们在完成一个应用程序Table#2
时从哪个频道进来。为此,我需要从Table#3
中选择具有"创建日期时间"的记录。最接近应用程序"创建日期时间"没有被追求。
注意:Table#1
的{{1}}与记录匹配回ID
。因此,我必须加入Table#3
到Table#2
,然后在Table#1
中选择与Table#3
中创建日期时间最接近日期时间的记录。
例如:
表#2 - 记录#1 - 创建日期时间@ 11/24/15 10:30:14
表#3 - 记录#1 - 创建日期时间@ 11/24/15 10:29:10
表#3 - 记录#2 - 创建日期时间@ 11/24/15 10:29:16
表#3 - 记录#3 - 创建日期时间@ 11/24/15 10:31:15
我只想加入Table#2
- Table#3
加入Record#2
- Table#2
。我想要这条记录,因为它最接近Record#1
中创建的日期时间。
另请注意,我需要在可能的情况下使用视图,以便其他人可以使用此数据,而不必依赖于我在发生更新时向他们发送更新的代码。
我希望这是有道理的,如果不是,请问我,我会帮助回答更多问题!我必须完成这项任务,否则我的老板会对我的技能水平感到非常失望。他很高兴我花了这么长时间才想出来(2天的圈赛)。 : - \
- 提前谢谢,
比你不熟练的人
答案 0 :(得分:0)
尝试下面结构的线条,你需要改变它以使用日期差异并添加第3个表格。
select *
from test1
,test2
where test1.a = test2.a
and (test1.b - test2.c) = (
select min(t1.b - t2.c)
from test1 t1
,test2 t2
where t1.a = t2.a
and test1.a = t1.a)