2009-10-14 27 views
0

我被一個SQL查詢卡住了。Oracle SQL LOOP(在兩個日期之間)和計數

我有這樣的表:

[預訂]

  • ID NUMBER
  • START_DATE,DATE
  • END_DATE,DATE

........ ..(more cols)

我需要l如果在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 

回答

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 

既然你沒有指定表和查詢中涉及的表之間的關係,我猜。我可能猜錯了。這就是人生。 :)

+0

我明白你的答案...我使用BETWEEN函數來計算它出現的時間:D 謝謝! – Sheldon 2009-10-14 04:51:49

相關問題