我有一个 #tmp
表,如下所示。一共有三行。
标题 | 收据日期 | decision_date |
---|---|---|
“没有我想象的那么糟糕” | 2017-06-12 15:07:10.893 | 2017-06-23 09:37:31.667 |
“没有我想象的那么糟糕” | 2017-07-11 10:35:24.337 | 2018-06-25 05:54:41.133 |
“没有我想象的那么糟糕” | 2017-09-25 14:06:18.670 | 2017-11-21 05:13:08.563 |
代码应该遍历三行中的每一行,并且(基于当前迭代的行)从整个表中选择 receive_date
在 receive_date
和 {{1} 之间的所有行} 在任何其他行上。
注意:我专门使用了大于和小于(相对于大于或等于),这样行就不会自选。
注意:decision_date
晚于 2017-09-25 14:06:18.670
但早于 2017-07-11 10:35:24.337
,因此该行应在选择中返回。但我从选择中一无所获。
我在 SSMS 中运行代码
代码
2018-06-25 05:54:41.133
答案 0 :(得分:1)
破解你的问题并不容易。你应该发布了一个正确的example!但据我所知,听起来您可以简单地使用 EXISTS
和相关子查询。
SELECT *
FROM #tmp t1
WHERE EXISTS (SELECT *
FROM #tmp t2
WHERE t2.receipt_date < t1.receipt_date
AND t2.decision_date >= t1.receipt_date);