【问题标题】:Joins between nullnull 之间的连接
【发布时间】:2014-04-25 06:19:02
【问题描述】:
RouteNo Date

100 24/4/2014

100 25/5/2014

100 26/6/2014

200 24/4/2014

200 

200 26/6/2014

300 24/4/2014

300 25/5/2014

300 26/6/2014

我想搜索所有路线编号(日期在 2014 年 1 月 5 日到 2014 年 5 月 31 日之间),如果该路线在 2014 年 1 月 5 日到 2005 年 31 月之间没有任何日期,请告诉我路线/2014) 结果我需要 200,因为它没有五月日期。 任何人请帮助我。

谢谢

【问题讨论】:

    标签: date join null between


    【解决方案1】:

    如果我理解你的问题是正确的; 我认为这样的事情可能会奏效:

    SELECT RouteNo
    FROM <your table>
    WHERE RouteNo NOT IN (
        SELECT RouteNo FROM <your table> 
        WHERE [Date] >= '20140501' AND [Date] <= '20140531'
    )
    

    【讨论】:

    • 我从utl_reader_route_date加入utl_reader_route上utl_reader_route.reader_route_id = utl_reader_route_date.reader_route_id加入utl_meter_reader上utl_reader_route.meter_reader_id = utl_meter_reader.meter_reader_id其中utl_meter_reader.meter_reader_code其他连接以及选择utl_reader_route.reader_route_code,utl_reader_route_date.read_date =” ADR MRS' 和 utl_reader_route_date.read_date 在 '2014-05-01' 和 '2014-05-31' 之间按 read_date 排序
    • 好吧 - 当我写答案时,你只显示了 RouteNo 和 Date;所以没有人可以知道你还有什么额外的东西。此外,NOT IN 方法仍应与“其他连接”一起使用。
    • 谢谢汉森,对不起,我对这个网站和 SQL 很陌生。感谢您的帮助
    • 在 SQL 中,通常有几种方法可以得到相同的结果;并且您应该能够使用外部连接(左或右)来执行此操作,然后在其中添加一个条件,该条件必须为 NULL。但一般来说,除非您知道自己在做什么,否则在这些情况下使用 NOT IN 会更容易,因为此类查询可能非常复杂
    • 谢谢汉森,你能帮我吗,我会非常非常感谢你?我想从 utl_reader_route 获取所有内容,即使它在 2014 年 1 月 5 日到 2014 年 5 月 31 日之间没有任何日期
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-22
    • 2019-01-29
    • 2013-01-17
    • 2015-07-01
    • 2020-08-28
    相关资源
    最近更新 更多