2009-10-14 6 views
0

Je suis bloqué avec une requête SQL.Oracle SQL LOOP (entre 2 dates) et le comptage

Je possède ce tableau:

[Réserve]

  • ID NUMÉRO
  • START_DATE DATE
  • END_DATE, DATE

........ .. (plus de cols)

J'ai besoin de ook si le nombre suivant est supérieur à 0 pour l'une des dates entre le START_DATE et le END_DATE (y compris les deux). Si le nombre est supérieur à 0, la requête doit s'arrêter immédiatement et renvoyer "Il n'y a pas d'emplacement" sous la forme d'une chaîne.

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

Répondre

2

Si je vous comprends bien, cela devrait fonctionner:

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 

Puisque vous ne spécifiez pas la relation entre la table et les tables impliquées dans la requête, je devinais. Et j'ai peut-être mal deviné. C'est la vie. :)

+0

Je me rends compte de ce que vous répondez ... Je compte les fois où il apparaît en utilisant la fonction BETWEEN: D Merci! – Sheldon

Questions connexes