首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >允许基于预订进行更新的方案-SQL

允许基于预订进行更新的方案-SQL
EN

Stack Overflow用户
提问于 2016-06-29 12:27:17
回答 5查看 228关注 0票数 8

场景为用户预订DEMO001系统的时间为8月10日至8月11日。

代码语言:javascript
运行
复制
START_DATE     END DATE    SYSTEM
2016-08-10     2016-08-11  DEMO001
2016-09-05     2016-09-08  DEMO001
2016-08-08     2016-08-11  DEMO013
2016-08-16     2016-08-18  DEMO017

假设我得到了一个输入参数

代码语言:javascript
运行
复制
1) start date as 2016-08-08  and end date as 2016-08-11 I can allow 
2) start date as 2016-08-11  and end date as 2016-09-08 I cannot allow
3) start date as 2016-08-10   and end date as 2016-08-15 I can allow
3) start date as 2016-08-10   and end date as 2016-09-06 I cannot allow

如果用户试图通过延长或提前开始或结束日期来更新此系统中的任何一个,如果在这两天之间没有其他人预订,我将不得不说0或1。

这是此场景的扩展

Checking if the "system" falls between two dates in SQL

我试着修改它给出的建议,但不能得到正确的。敬请指教。

EN

Stack Overflow用户

发布于 2016-07-05 19:19:06

这完全归功于@kordirko,但只是为了让您理解您熟悉的输出模型(由@MTO提供)

预订表:

代码语言:javascript
运行
复制
CREATE TABLE table_name ( START_DATE, END_DATE, SYSTEMS ) AS
SELECT DATE '2016-08-10', DATE '2016-08-11', 'DEMO001' FROM DUAL UNION ALL
SELECT DATE '2016-09-05', DATE '2016-09-08', 'DEMO001' FROM DUAL UNION ALL
SELECT DATE '2016-08-08', DATE '2016-08-11', 'DEMO013' FROM DUAL UNION ALL
SELECT DATE '2016-08-16', DATE '2016-08-18', 'DEMO017' FROM DUAL;

使用绑定变量查询系统、start_date、end_date

代码语言:javascript
运行
复制
SELECT :systems, :start_date, :end_date, 
       CASE WHEN COUNT(*) > 1 
            THEN 'I cannot Allow' ELSE 'I can Allow' 
        END result
FROM bookings t1 
WHERE ( :start_date <= t1.end_date) AND (:end_date >= t1.start_date ) 
    AND t1.systems = :systems
GROUP BY :start_date, :end_date;

输出:

代码语言:javascript
运行
复制
1) DEMO001  2016-08-08  2016-08-11  -> I can Allow
2) DEMO001  2016-08-11  2016-09-08  -> I cannot Allow
3) DEMO001  2016-08-10  2016-08-15  -> I can Allow
4) DEMO001  2016-08-10  2016-09-06  -> I cannot Allow
票数 2
EN
查看全部 5 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38090387

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档