根据其他表中的条件获取结果

佩加斯

我有一张桌子

Orders

ID       User
-----------------
1        Matt
2        Chris
3        John

然后我有另一张桌子

Order_Contact

ID      Order_ID        Type                    Timestamp                   
-------------------------------------------------------------------
1       1               Request                 2018-01-01 10:00:00
2       1               Request                 2018-01-01 10:35:00
3       1               Response                2018-01-01 11:00:00
4       1               Request                 2018-01-01 12:00:00
5       2               Request                 2018-01-01 13:00:00
6       2               Response                2018-01-01 14:00:00

我的目标是创建一个查询,返回所有具有“打开”联系请求但没有响应的订单。一个响应足以满足多个请求。在晚于请求的日期时间没有响应的请求是“开放的”。我怎么能做到这一点?

在上述情况下,我想返回

ID       User
----------------
1        Matt
乌兹

检查此查询

select
    Orders.ID, Orders.[User]
from (
    select
        *, max([Timestamp]) over (partition by Order_ID) maxDate
    from
        Order_Contact
) t
join Orders on t.Order_ID = Orders.ID
where
    t.maxDate = t.[Timestamp]
    and t.[Type] = 'Request'

由于问题的变化而更新了查询

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章