我有一个SQL Server表,每当有人结帐和签入卡时,它都会将事务存储在数据库中。我试图拿出一个视图,以显示所有的卡交易,其中一个人没有登记卡在7天内结账。我的表格如下:
+-------------+-------------+------------------+
| Card_Number | Status | Transaction_Date |
+-------------+-------------+------------------+
| 123456 | Checked In | 7/8/2018 |
| 123456 | Checked Out | 7/1/2018 |
| 234567 | Checked In | 7/8/2018 |
| 234567 | Checked Out | 7/1/2018 |
| 456789 | Checked In | 7/5/2018 |
| 456789 | Checked Out | 7/1/2018 |
+-------------+-------------+------------------+在本例中,我想要的是卡号为123456和234567的记录,但由于某些原因,我想不出一种好的方法来实现这一点。任何帮助都将不胜感激。提前谢谢你。
发布于 2018-07-14 08:03:30
我不确定我是否做对了,但这就是我所尝试的。希望能有所帮助!
select card_number, transaction_date, sta
from
(
select t1.card_number, t1.transaction_date, t1.sta, datediff(DAY, t1.transaction_date, t2.transaction_date) as diff
from trans t1
join trans t2
on t1.card_number = t2.card_number
) result
where diff=7 and sta = 'Checked Out'https://stackoverflow.com/questions/51333230
复制相似问题