Oracle SQL LOOP(两个日期之间)和计数

Posted

技术标签:

【中文标题】Oracle SQL LOOP(两个日期之间)和计数【英文标题】:Oracle SQL LOOP (between 2 dates) and Counting 【发布时间】: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

【问题讨论】:

【参考方案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 谢谢!

以上是关于Oracle SQL LOOP(两个日期之间)和计数的主要内容,如果未能解决你的问题,请参考以下文章

如何在 oracle sql 中提取两个日期之间的天数?

查找两个日期之间的差异 Oracle SQL

oracle怎么计算两个日期之间去除周末的天数?

FOR LOOP 脚本未运行

如何使用间隔 1 分钟在两个日期之间将时间序列数据生成到 Oracle PL/SQL 中的表中?

oracle 日期计算