将动态参数添加到联接语句日期范围SQL

问题描述 投票:0回答:1

据说我有2个表格,格式如下:

表1:访问次数

Customer | Website_visit_id  | Time_of_visit

表2:预订

Customer | Hotel_booking_id  | Time_of_booking

我创建了一个表,其中包含客户的ID,他们的预订以及他们在使用此预订之前30天内对网站的所有访问:

选择客户,booking_id,网站_visit_id来自的访问预订预订b。a.customer = b.customer和date_date(天,-30,booking的时间)与time_of_booking之间的访问时间

我的问题是-如果我想扩展此时间范围以查看预订前60,90,120 ... 365天内有多少次访问,我该如何最有效地做到这一点(而不是必须运行加入dateadd数字更改了12次吗?是否有一种方法可以在join语句中添加一个参数来代替'30'天?

输出结果可以是预订列表及其相应的访问次数/时间范围,也可以是预订列表和每个时间范围的总访问量(如下所示:

Time_frame| Customer | Hotel_booking_id | Number of visits
T30D      | Mike     | 1A               | 5
T60D      | Mike     | 1A               | 15
T90D      | Mike     | 1A               | 22
T120D     | Mike     | 1A               | 27

Thank you in advance

假设我有2个表格,格式如下:表1:拜访客户| Website_visit_id |表2:预订客户| Hotel_booking_id |我创建了一个表Time_of_booking ...

sql
1个回答
0
投票

如果要动态构建查询,则应查看数据库是否支持动态查询/ sql。从本质上讲,除了运行查询之外,您还可以运行带有逻辑的存储过程来标识查询参数应该是什么。从那里,您将能够根据首选逻辑动态创建查询并执行它。

© www.soinside.com 2019 - 2024. All rights reserved.