【发布时间】:2014-09-18 02:17:29
【问题描述】:
我有两个表(Table1 和 Table2):
表1
Date Name Other
2014-02-08 Alex 1
2014-06-15 Bob 1
表2
Date Name Count
2014-02-07 Alex 1
2014-01-31 Alex 2
2014-02-09 Alex 4
2014-02-08 Alex 10
2014-02-10 Alex 0
2014-02-01 Alex 4
2014-01-08 Alex 5
2014-03-08 Alex 4
2014-06-01 Bob 22
2014-06-02 Bob 0
2014-06-10 Bob 9
2014-06-15 Bob 3
2014-06-16 Bob 3
2014-06-20 Bob 5
2014-06-14 Bob 18
2014-07-11 Bob 1
2014-08-15 Bob 2
我很难构建完成以下任务的查询:
- 从 Table1 中,遍历每个“日期”和“名称”
- 对于表 1 中给定的“日期”和“名称”,遍历表 2 并获取所有具有相同“名称”且日期早于“日期”(在表 1 中)和 5 天的行“日期”之后的天数(在表 1 中)。
因此,对于“2014-02-08”上的 Table1,“Alex”,我想获取 Table2 中所有也显示“Alex”但日期在“2014-01-29”之间的行(10 天前2014-02-08)和“2014-02-13”(2014-02-08 后 5 天)。
对于“2014-06-15”上的“Bob”,我想抓取 Table2 中所有也显示“Bob”但日期在“2014-06-05”之间(2014-06 前 10 天)的行15) 和“2014-06-20”(2014-06-15 后 5 天)。
预期的输出是:
Date Name Count
2014-02-07 Alex 1
2014-01-31 Alex 2
2014-02-09 Alex 4
2014-02-08 Alex 10
2014-02-10 Alex 0
2014-02-01 Alex 4
2014-06-10 Bob 9
2014-06-15 Bob 3
2014-06-16 Bob 3
2014-06-20 Bob 5
2014-06-14 Bob 18
在我的实际工作中,Table1 中的行数要大得多,我想在参考日期之前/之后抓取的天数可能会有所不同。
【问题讨论】:
-
似乎有什么问题?你被困在哪里了?
-
这是 MySQL 还是 MS SQL?
-
@PM 77-1:我只学习了基本的 SQL 教程,并且只处理了单个表。此时处理两张表的逻辑让我难以理解。
-
@Rajesh:如标签中所述,Netezza SQL。
-
现在是学习更难的教程的时候了。