CREATE proc sp_MeetingCheck_Test        
@serialno varchar(max)='',   ---- 主档serialno        
@title nvarchar(200)='',--会议主题        
@buser nvarchar(50)='' --建档人        
as        
declare @Result varchar(max)        
declare @sdate datetime        
declare @edate datetime        
declare @stime datetime        
declare @etime datetime        
declare @shour nvarchar(50)        
declare @ehour nvarchar(50)        
declare @sdate1 datetime        
declare @edate1 datetime        
declare @stime1 datetime        
declare @etime1 datetime        
declare @shour1 nvarchar(50)        
declare @ehour1 nvarchar(50)        
declare @adress nvarchar(100)        
        
--INSERT INTO A1(A1) VALUES('1')        
        
set xact_abort on        
begin transaction  --select * from A1 delete from A1        
begin        
set @Result='SUCCESS'        
        
    -----------获取当前单据相关数据------        
    select         
    @sdate=MeetingDate,        
    @edate=MeetingDate2,        
    @stime=cast(convert(varchar(50),MeetingDate,23)+' '+startDatetime as datetime),        
    @etime=cast(convert(varchar(50),MeetingDate2,23)+' '+endDatetime as datetime),        
    @shour=startDatetime,        
    @ehour=endDatetime,        
    @adress=MeetingAdress        
    from t_OA_meetingApply where serialno=@serialno        
            
    ------------对比最前已审核10张单,用游标做对比-----        
    select top 10        
    MeetingDate,isnull(MeetingDate2,MeetingDate) MeetingDate2,        
    cast(convert(varchar(50),MeetingDate,23)+' '+startDatetime as datetime) stime1,        
    cast(convert(varchar(50),isnull(MeetingDate2,MeetingDate),23)+' '+endDatetime as datetime) etime1,        
    startDatetime,endDatetime        
    into #mttmp1 from t_OA_meetingApply where MeetingAdress=@adress          
    and checked=1 order by stime1 desc        
    --------------------------------------         
    declare cur cursor for        
    select MeetingDate,MeetingDate2,stime1,etime1,startDatetime,endDatetime from #mttmp1        
    for read only          
    open cur        
    fetch cur into @sdate1,@edate1,@stime1,@etime1,@shour1,@ehour1          
    while @@fetch_status=0          
    begin          
         --set @Result='SUCCESS'        
         --@sdate1,@edate1 不带时间        
         --@stime1,@etime1 带时间        
         --@shour1,@ehour1 小时与分钟 字串 如09:30        
         if(@sdate=@edate)  --日期相同        
         begin        
              --if(@edate=@sdate1 or @edate=@edate1)        
              --begin        
                     if(@stime=@etime1 or @etime=@etime1) --相等时间        
                     begin        
                          set @Result='会议时间有重复,不能预定!'        
                     end        
                     else if((@stime>@stime1 and @stime<@etime1) and (@etime>@stime1 and @etime<@etime1)) --中间时间        
                     begin        
                          set @Result='会议时间有包含,不能预定!'        
                     end        
                     else if(@stime<@stime1 and @etime>@etime1)  --两边时间        
                     begin        
                          set @Result='会议时间有包含,不能预定!'        
                     end        
                     else if(@stime<@stime1 and @etime>@stime1)        
                     begin        
                          set @Result='会议时间有包含,不能预定!'        
                     end        
                     else if(@stime<@etime1 and @etime>@etime1)        
                     begin        
                          set @Result='会议时间有包含,不能预定!'        
                     end        
                     else if((@stime<@stime1 and @etime<@stime1) or (@stime>@etime1 and @etime>@etime1))        
                     begin        
                          set @Result='SUCCESS'        
                     end        
                     else        
                     begin        
                          set @Result='SUCCESS'        
                     end        
                             
                   if(@Result<>'SUCCESS')        
                     begin        
                           --return        
                           break        
                     end        
            --end        
         end 

预约会议sql的更多相关文章

  1. SQL存储过程-新增和修改,参数Xml数据类型

    输入参数:xml数据类型  功能:新增和修改  --value() 方法从 XML 中检索 rogue 属性值.然后将该值分配给 int 变量. --将 Member 节点拆分成多行 SELECT T ...

  2. Sql语法高级应用之五:使用存储过程实现对明细多层次统计

    前言 前面章节我们讲到了存储过程的基础用法,本章则将一个在项目中实际应用的场景. 在项目中经常会存在这样的需求,例如需要对明细列表进行按组.按级别.按人等进行统计,如果在附带列表的查询条件,又如何实现 ...

  3. 会议通js

    js逻辑: /** * Created by wanglijuan on 2016/12/2. */ $(function () { //登陆后请求数据 // $.ajax({ // url:&quo ...

  4. Google I/O 官方应用中的动效设计

    版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/jILRvRTrc/article/details/82881743 作者:Nick Butcher, ...

  5. Odoo,快速上手Odoo,来了解Odoo几个标准模块

    odoo通过Apps和Connector扩展和集成数以万计的应用和服务,odoo目前有超过12500个Apps可选用.它囊括了项目管理,生产.财务.记账和销售管理,仓储管理,人力资源管理,等等项目.本 ...

  6. 小鱼易连 for mac如何使用?小鱼易连 mac版使用教程

    小鱼易连 for mac如何使用?小鱼易连 mac版是参加远程会议人士的首选,高效极致,简单流畅,视频流畅,语音清晰,无需专用网络的功能深受用户的喜欢,它提供的文件和电脑的共享,让你的会议更加高效.下 ...

  7. 怎样管理Exchange Server 2013资源邮箱

    1. exchange资源邮箱介绍 这次将介绍Exchange Server 2013的资源邮箱相关内容. Exchange Server 2013的资源邮箱包含两类,其一为“会议室邮箱”,另一类是“ ...

  8. 图书管理系统(Java实现,十个数据表,含源码、ER图,超详细报告解释,2020.7.11更新)

    图书管理系统数据库设计实验报告 文章目录 更新日志 1.概述 2.需求分析 2.1需要实现的功能 2.2业务流程图 2.2.1学生流程图 2.2.2管理员流程图 2.2.3超级管理员流程图 2.3功能 ...

  9. SQL 会议消费记录统计

    统计 /****** Object: Procedure [dbo].[JOB_UP_Summit_UserConfStat] Script Date: 2014-3-17 10:00:50 **** ...

随机推荐

  1. Spring Boot启动过程(七):Connector初始化

    Connector实例的创建已经在Spring Boot启动过程(四):Spring Boot内嵌Tomcat启动中提到了: Connector是LifecycleMBeanBase的子类,先是设置L ...

  2. 三、Dotnet Core Code First 创建数据库

    1.在项目中创建Models文件夹2.在Models文件夹中建立 表的属性类:如 User类.3.在Models文件夹创建DataContext 继承DbContext类(可以选择重写OnModelC ...

  3. 【源码分析】cJSON库学习

    cJSON库是什么? cJSON是一个轻量级的json解析库.使用起来非常简单,整个库非常地简洁,核心功能的实现都在cJSON.c文件,非常适合阅读源代码来学习C语言.最近读完这个库的源码,分享自己收 ...

  4. [ext4]03 磁盘布局 – Flexible group分析

    Flexible Block Groups (flex_bg),我称之为"弹性块组",是EXT4文件系统引入的一个feature. 所谓Flexible Block Groups, ...

  5. 我拖拖拖--H5拖放API基础篇

    不要搞错,本文不是讲如何拖地的.看过<javascript精粹>朋友应该知道,他实现拖放的过程比较复杂,现在时代不同了,我们用H5的新的拖放API就能非常方便的实现拖放效果了.最近在园子见 ...

  6. linux网络设置和虚拟机克隆转移之后Error:No suitable device found:no device found for connection 'System eth0'问题解决

    以root用户登录 #vi  /etc/sysconfig/network-scripts/ifcfg-eth0     #编辑配置文件,添加修改以下内容 BOOTPROTO=static   #启用 ...

  7. 【教程】发布NAServer到ArcGIS Server 10.4上[超详细]

    前阵子对ArcGIS API For JavaScript的网络分析有兴趣,但是不知道其数据是如何获取的. 查阅API知道,AJS的网络分析只有三个功能:最短路径(RouteTask).最近设施点(C ...

  8. jenkins 用户名密码忘记

    进入c盘--用户 在本地用户的目录下找到.jenkins目录,里面有一个config.xml; 打开后,删除其中的 " <useSecurity>true</useSecu ...

  9. 【Android Widget】FragmentTabHost

    android.support.v4包里面提供了FragmentTabHost用来替代TabHost,FragmentTabHost内容页面支持Fragment,下面我们就通过示例来看他的用法 效果图 ...

  10. 智能指针剖析(上)std::auto_ptr与boost::scoped_ptr

    1. 引入 C++语言中的动态内存分配没有自动回收机制,动态开辟的空间需要用户自己来维护,在出函数作用域或者程序正常退出前必须释放掉. 即程序员每次 new 出来的内存都要手动 delete,否则会造 ...