一个拼凑sql,输出变量的 存储过程
/*
从定位信息临时表根据分站类型抽取 信息插入考勤表
*/
ALTER PROCEDURE dbo.sp_insertToAttendance
(
@cardNum nvarchar(50),
@occDay int,
@occTime datetime,
@whereCase nvarchar(100) --判断 的条件
)
AS
declare @sql nvarchar(500), --查询10分钟前到 定位信息的数量
@result int,
@sql2 nvarchar(500), --查询当前时间到10分钟后 定位信息的数量
@result2 int
set @sql=N'select @rc=count(*) from positionTemp where workSiteId in (select id from workSite where '+@whereCase+') and occTime between dateadd(mi,-10,'''+convert(char(19),@occTime,121)+''') and '''+convert(char(19),@occTime,121)+''''
set @sql2=N'select @rc=count(*) from positionTemp where workSiteId in (select id from workSite where '+@whereCase+') and occTime between '''+ convert(char(19),@occTime,121) +'''and dateadd(mi,10,'''+convert(char(19),@occTime,121)+''')'
exec sp_executesql @sql , N'@rc int output',@result output
exec sp_executesql @sql2 , N'@rc int output',@result2 output
if (@result>0 and @result2<1)--由此判断为上班定位信息
begin
if not exists(select * from attendance where cardNum=@cardNum and occDay=@occDay) --判断是否存在该员工当天的考勤记录
--begin
-- update attendance set inTime=@occTime where cardNum=@cardNum and occDay=@occDay --存在,则更新该员工的上班时间
-- end
-- else
begin
insert attendance(cardNum,inTime,occDay) values(@cardNum,@occTime,@occDay) --不存在,则插入员工的上班记录
end
end
else if(@result>1 and @result2<1) --由此判断为下班定位信息
begin
if exists(select * from attendance where cardNum=@cardNum and occDay=@occDay) --判断是否存在该员工当天的考勤记录
begin
update attendance set inTime=@occTime where cardNum=@cardNum and occDay=@occDay --存在,则更新该员工的上班时间
end
else
begin
insert attendance(cardNum,inTime,occDay) values(@cardNum,@occTime,@occDay) --不存在,则插入员工的上班记录
end
end
转载于:https://www.cnblogs.com/koolay/archive/2009/06/03/1495259.html
一个拼凑sql,输出变量的 存储过程相关推荐
- 一个利用sql 语句来实现分页的存储过程
最近一直在研究存储过程和函数,感觉这趟水有点浑,所以我决定要趟这趟浑水. 一些是一个sql server的分页存储过程,可以结合页面设计来进行理解 假设场景有,上一页 下一页两个按钮,排序方式悬着下拉 ...
- oracle存储过程rowcount用法,Oracle带输入、输出参数的存储过程回来受影响的行数SQL%ROWCOUNT...
当前位置:我的异常网» SQL » Oracle带输入.输出参数的存储过程回来受影响的行数 Oracle带输入.输出参数的存储过程回来受影响的行数SQL%ROWCOUNT www.myexceptio ...
- mysql执行字符串sql结果复制被变量_mysql存储过程-执行字符串变量的sql
SET @xx="name,bm"; SET @sql1 = CONCAT('select ',@xx,' from people'); prepare s1 from @sql1 ...
- SQL Server基础之存储过程
阅读目录 一:存储过程概述 二:存储过程分类 三:创建存储过程 1.创建无参存储过程 2.修改存储过程 3.删除存储过程 4.重命名存储过程 5.创建带参数的存储过程 简单来说,存储过程就是一条或 ...
- Sql Server实用操作-存储过程精解
CREATE PROCEDURE 创建存储过程,存储过程是保存起来的可以接受和返回用户提供的参数的 Transact-SQL 语句的集合.可以创建一个过程供永久使用,或在一个会话中临时使用(局部临时过 ...
- 在asp中怎么调用带输出参数的存储过程
这是我写的存储过程 CREATE proc hz @count2 bigint output, @minsl varchar, @maxsl varchar as create table #tmp( ...
- 使用变量_存储过程和函数及变量的使用
存储过程和函数是在数据库中定义一些SQL语句的集合,然后直接调用这些存储过程和函数来执行已经定义好的SQL语句.存储过程和函数可以避免开发人员重复的编写相同的SQL语句.而且,存储过程和函数是在mys ...
- 常用的sql server 函数、存储过程、临时表总结
最近写T-sql语句比较多, 想把这段时间遇到过的貌似有用的一些sql server的函数,存储过程,临时表等总结一下,以便不时之需,当然不会一下子所有都总结,但会分段总结: 1)存储过程定义: cr ...
- Sql Server系列:存储过程
1 存储过程简介 存储过程是使用T-SQL代码编写的代码段.在存储过程中,可以声明变量.执行条件判断语句等其他编程功能.在MS SQL Server 2012中存储过程主要分三类:系统存储过程.自定义 ...
最新文章
- FPGA的设计艺术(5)STA实战之时钟偏斜对建立保持时间的影响以及时序报告分析
- 链表反转leetcode206
- 2019.3.1版本pycharm撤销及恢复图解
- 数据增强:数据有限时如何使用深度学习 ?
- plsql大字段保存类型_大揭秘,学习python,为什么数据类型有这么重要
- show table status 参数详解
- 如何打开苹果Mac触控板的三指拖移功能?
- PostgreSQL学习手册(函数和操作符三)
- html学术模板,用Latex写学术论文(一): IEEE模板和\documentclass
- winform DevComponents.DotNetBar2 添加到工具栏方法
- unity 无法打包
- Ti的C28x系列的DSP(28069)(28377D)使用经验,CMD文件
- word高级技能之自动生成图目录/表目录
- 单个网页的搜索引擎优化(SEO)策略
- UNITY笔技--DOTS/ECS
- wifi转串口芯片——ESP8266:配置与使用
- linux-安装及管理程序(一) rpm源安装
- Lazarus 兼容 Delphi 的跨平台 IDE
- Mysql学习笔记(一):子查询与选择
- 【软考系统架构设计师】2021年下系统架构师论文写作历年真题