Oracle SQL LOOP(2个日期之间)和Counting

时间:2009-10-14 00:09:39

标签: sql oracle plsql

我遇到了SQL查询。

我有这张桌子:

[预订]

  • ID NUMBER
  • START_DATE,DATE
  • END_DATE,DATE

..........(更多cols)

我需要查看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

1 个答案:

答案 0 :(得分:2)

如果我理解正确,这应该有效:

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

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