SQL Server2008存储过程中函数的用法(举例)
USE 数据库
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE function 函数名称
(@EmpID nvarchar(50))
returns nvarchar(10)
as
begin
DECLARE
@TempDayID NVARCHAR(10), --費用計算日
@TempDayID1 NVARCHAR(10), --最後一天請非曠工假
@TempDayID2 NVARCHAR(10), --最後一天上班日(非責任制)
@VocaDayID NVARCHAR(10),
@VocaEmpID NVARCHAR(50),
@VocaTotalHours NUMERIC(7, 2),
@IsDuty NVARCHAR(1)
--查找離職人員请的最大非旷工假的請假日期
SELECT @TempDayID1=MAX(VocaDayID) FROM temp临时表 WHERE VocaEmpID=@EmpID AND ColType!='C04'
--查找離職人員的請假明細
SELECT @VocaEmpID=VocaEmpID,@VocaDayID=VocaDayID,@VocaTotalHours=VocaTotalHours ,@IsDuty=IsDuty
FROM temp临时表
WHERE VocaEmpID=@EmpID AND VocaDayID =@TempDayID1
--查找離職人員的最后上班日
SELECT @TempDayID2= MAX(A.DayID)
FROM 出勤表 A, 离职表签核明细表 B
WHERE A.EmpID=B.EmpID AND A.IsDuty='N' AND B.EmpID=@EmpID AND A.IsClass='Y' AND A.ABMinutes >=560
IF (@TempDayID IS NULL)
BEGIN
SET @TempDayID = CONVERT(NVARCHAR(10),DATEADD(DAY,0,@TempDayID1),111)
IF (@TempDayID1<@TempDayID2)
BEGIN
SET @TempDayID=@TempDayID2
END
ELSE IF(@TempDayID1>@TempDayID2)
BEGIN
IF(@VocaTotalHours<8)
BEGIN
SET @TempDayID= CONVERT(NVARCHAR(10),DATEADD(DAY,-1,@TempDayID1),111)\
END
ELSE
BEGIN
SET @TempDayID=@TempDayID1
END
END
END
return @TempDayID
end
SQL Server2008存储过程中函数的用法(举例)的更多相关文章
- SQL Server存储过程中使用表值作为输入参数示例
这篇文章主要介绍了SQL Server存储过程中使用表值作为输入参数示例,使用表值参数,可以不必创建临时表或许多参数,即可向 Transact-SQL 语句或例程(如存储过程或函数)发送多行数据,这样 ...
- [SQL]SUTFF内置函数的用法 (删除指定长度的字符并在指定的起始点插入另一组字符)
STUFF 删除指定长度的字符并在指定的起始点插入另一组字符. 语法 STUFF ( character_expression , start , length , character_express ...
- sql 在存储过程中使用事务(转)
本来想自己写一下,后来发现这个写的比我理解的要好,所以直接拽过来了,链接地址:https://www.cnblogs.com/RascallySnake/archive/2010/05/17/1737 ...
- Sql Server 存储过程中查询数据无法使用 Union(All)
原文:Sql Server 存储过程中查询数据无法使用 Union(All) 微软Sql Server数据库中,书写存储过程时,关于查询数据,无法使用Union(All)关联多个查询. 1.先看一段正 ...
- Sybase 存储过程中IF的用法
Sybase 存储过程中IF的用法 --@i_val 为参数 or @i_val is null then begin --执行内容 end; end if;
- ORACLE动态sql在存储过程中出现表或视图不存在的解决方法
Oracle动态sql在存储过程中出现表或视图不存在的解决方法 CREATE OR REPLACE PROCEDURE P_test is strsql varchar2(2000); BEGIN ...
- Sql Server存储过程和函数浅谈
今天给大家总结一下sql server中的存储过程和函数.本人是小白,里面内容比较初级,大神不喜勿喷 自行飘过就是.. 首先给大家简单列出sql server中的流控制语句,后面会用到的^_^ sql ...
- PL/SQL之存储过程和函数
1.创建存储过程 .1语法: CREATE[OR REPLACE] PROCEDURE [schema.] procedure_name[(argument[{IN|OUT|IN OUT}] data ...
- SQL Server 存储过程中处理多个查询条件的几种常见写法分析,我们该用那种写法
本文出处: http://www.cnblogs.com/wy123/p/5958047.html 最近发现还有不少做开发的小伙伴,在写存储过程的时候,在参考已有的不同的写法时,往往很迷茫,不知道各种 ...
随机推荐
- eclipse连接夜神模拟器方法
用eclipse 进行安卓开发的时候我们会遇到安卓自带的模拟器启动时间过长,反应慢等的问题,这个时候我们就希望使用别的安卓模拟器,而我自己喜欢使用夜神模拟器.1.首先我们启动eclipse 和夜神模拟 ...
- Tomcat redis session manager connect redis show: ERR Client sent AUTH, but no password is set
解决问题redis问题:ERR Client sent AUTH, but no password is set - 东篱煮酒 - 博客园https://www.cnblogs.com/niepeis ...
- lintcode 787. The Maze 、788. The Maze II 、
787. The Maze https://www.cnblogs.com/grandyang/p/6381458.html 与number of island不一样,递归的函数返回值是bool,不是 ...
- flutter State管理
import 'package:flutter/material.dart'; import 'package:scoped_model/scoped_model.dart'; class State ...
- openresty开发系列10--openresty的简单介绍及安装
openresty开发系列10--openresty的简单介绍及安装 一.Nginx优点 十几年前,互联网没有这么火,软件外包开发,信息化建设,帮助企业做无纸化办公,收银系统,工厂erp,c/s架构偏 ...
- Java Thread Local – How to use and code sample(转)
转载自:https://veerasundar.com/blog/2010/11/java-thread-local-how-to-use-and-code-sample/ Thread Local ...
- 比较两个数组的键名,并返回交集:array_intersect_key
$a1=array("a"=>"red","b"=>"green","c"=>&q ...
- LODOP打印表格错位的几种情况
在网页设计中,表格经常用到百分比,表格在浏览器中展示,这个百分比是相对于浏览器的.还有div,各种浮动之类的相对位置,也有的用到百分比.而在LODOP打印中,百分比是相对于纸张的.LODOP中打印项的 ...
- 前端研究CSS之文字与特殊符号元素结合的浏览器兼容性总结
页面布局里总是会有类似 “文字 | 文字” 的设计样式,不同的浏览器存在严重偏差. 有兼容问题就要解决,下面总结了3种解决方案,分享给大家: 一.系统默认的样式 1.元素换行的段落 <div c ...
- 【神经网络与深度学习】【计算机视觉】RCNN- 将CNN引入目标检测的开山之作
转自:https://zhuanlan.zhihu.com/p/23006190?refer=xiaoleimlnote 前面一直在写传统机器学习.从本篇开始写一写 深度学习的内容. 可能需要一定的神 ...