我想把这个表连接到自己上,以便把最早的借用日期和15天内发生的最近的归还日期联系起来......有人能知道怎么做吗?我想不出一个创造性的连接条件...?递归?
选择trans_number,type,date,Borrow_accurate,return_accurate FROM borrow_data;
| 类型,类型|日期,日期|借_发生|返回发生| return_occur |
| --|--|--|--| ------------ |
| 借款|14/9/14 5:58|一个|空值| NULL |
| 借款|14/10/14 5:58|二个|空值| NULL |
| 借款|14/12/14 5:58|三个|空值| NULL |
| 返回|14/10/14 9:58|空值|一个| 1 |
| 返回|14/13/14 9:58|空值|二个| 2 |
| 借款|14/13/14 5:21|四个|空值| NULL |
| 借款|2014年3月24日17:33|五|空值| NULL |
| 返回|2014年3月27日13:27|空值|三个| 3 |
| 返回|2014年3月30日12:31|空值|四个| 4 |
| 借款|2014年4月5日13:31|六|空值| NULL |
| 返回|2014年4月31日7:31|空值|五| 5 |
以下是所需的输出:
SELECT
r.type AS type_return,
r.return_occur,
r.date AS return_date,
b.type AS type_borrow,
b.borrow_occur,
b.date AS borrow_date,
Date_diff(r.date,b.date) AS date_diff
FROM borrow_data r
LEFT JOIN borrow_data b ...
字符串
请注意,在第3行中,borrow_occurance #3是如何被跳过的,b/c它发生在返回前15天……
并且在行5中,其空B/C在前15天内没有购买。
提前致谢
| (row类型返回|返回发生|返回日期|类型借用|借用发生|借用日期|日期差| date_diff |
| --|--|--|--|--|--|--| ------------ |
| (1)返回|一个|14/10/14 9:58|借款|一个|14/9/14 5:58|一个| 1 |
| (2)返回|二个|14/13/14 9:58|借款|二个|14/10/14 5:58|三个| 3 |
| (3)返回|三个|2014年3月27日13:27|借款| * 4 *| 14/13/14 5:21|十四岁| 14 |
| (4)返回|四个|2014年3月30日12:31|借款|五|2014年3月24日17:33|六| 6 |
| (5)返回|五|2014年4月31日7:31|空值| * 空 *| 空值|空值| NULL |
1条答案
按热度按时间cbeh67ev1#
我提出了这个查询(它是针对PostgreSQL的,但我希望你能理解):
字符串
这是我使用的数据表:
的数据
它产生输出:
的
只有在过去15天内有借用条目时才加入。我不检查分钟等只有几天。你必须按你喜欢的方式微调它。如果我误解了任何要求,请告诉我。