【问题标题】:Oracle SQL LOOP (between 2 dates) and CountingOracle SQL LOOP(两个日期之间)和计数
【发布时间】:2009-10-14 00:09:39
【问题描述】:

我被 SQL 查询卡住了。

我有这张桌子:

[预留]

  • 身份证号
  • START_DATE,日期
  • END_DATE,日期

.......(更多列)

我需要查看 START_DATE 和 END_DATE 之间的任何日期(包括两者)的下一个计数是否大于 0。如果计数大于 0,则查询必须立即停止并以字符串形式返回“没有位置”。

SELECT Count(*)
  FROM disponibilidad
  JOIN estadia ON disponibilidad.identificador_estadia = estadia.identificador
 WHERE estadia.identificador = 1
   AND disponibilidad.numero_reservas > 500

【问题讨论】:

    标签: sql oracle plsql


    【解决方案1】:

    如果我理解正确,这应该可以:

    SELECT 'There is no location'
    FROM Reserve r
    WHERE EXISTS (SELECT *
                  FROM disponibilidad 
                         JOIN estadia 
                            ON disponibilidad.identificador_estadia = estadia.identificador 
                  WHERE estadia.identificador = r.ID
                       AND disponibilidad.numero_reservas > 500 
                       AND disponibilidad.date BETWEEN r.StartDate AND r.EndDate)
    AND r.ID = 1
    

    由于您没有指定表与查询中涉及的表之间的关系,我猜想。而且我可能猜错了。这就是人生。 :)

    【讨论】:

    • 我根据您的回答来计算...我使用 BETWEEN 函数计算它出现的次数 :D 谢谢!
    猜你喜欢
    • 2021-11-15
    • 2015-08-15
    • 1970-01-01
    • 2021-07-20
    • 2012-04-05
    • 1970-01-01
    • 1970-01-01
    • 2012-10-13
    • 2017-11-05
    相关资源
    最近更新 更多