USE [UFDATA_999_2014]
GO
/****** Object: StoredProcedure [dbo].[p_XMonPerNums] Script Date: 06/12/2017 16:32:06 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date,,>dEnterUnitDate
-- Description: <Description,,> 当月在职员工统计
-- =============================================
ALTER PROCEDURE [dbo].[p_XMonPerNums] @XDate datetime AS
BEGIN declare @NowMonFir datetime
set @NowMonFir=convert(datetime,convert(nchar(),YEAR(@XDate))+'-'+CONVERT(nchar(),MONTH(@XDate))+'-01') select T1.cDept_num,T1.cDepName,isnull(T2.aaa,) as PriveMonth,isnull(T3.aaa,) as NowMonthIn,isnull(T4.aaa,) as NowMonthGo,(isnull(T2.aaa,) + isnull(T3.aaa,) - isnull(T4.aaa,) ) as NowMonthNum from(
(select h.cDept_num,d.cDepName from Department d join hr_hi_person h on d.cDepCode=h.cDept_num GROUP BY h.cDept_num,d.cDepName ) T1
left join
(select isnull(COUNT(h.cDept_num),) as aaa,h.cDept_num from hr_hi_person h WHERE dEnterUnitDate <@NowMonFir AND (dLeaveDate is NULL OR dLeaveDate>=@NowMonFir) GROUP BY cDept_num ) T2
on T1.cDept_num=T2.cDept_num
left JOIN
(select isnull(COUNT(h.cDept_num),) as aaa,h.cDept_num from hr_hi_person h WHERE dEnterUnitDate>=@NowMonFir AND dEnterUnitDate<DATEADD(MONTH,,@NowMonFir) GROUP BY cDept_num ) T3
on T1.cDept_num=T3.cDept_num
left JOIN
(select isnull(COUNT(h.cDept_num),) as aaa,h.cDept_num from hr_hi_person h WHERE dLeaveDate>=@NowMonFir AND dLeaveDate<DATEADD(MONTH,,@NowMonFir) GROUP BY cDept_num ) T4
on T1.cDept_num=T4.cDept_num ) END

当月在职员工统计

CREATE PROCEDURE p_lll
@LDate datetime
AS
BEGIN select * into
#templxc
from
(
SELECT sum(rds.iPrice ) AS iPrice ,ic2.cInvCName,ic2.cInvCCode,det2.cDepName,rd.dDate
FROM rdrecord11 rd
JOIN rdrecords11 rds
ON rd.id=rds.id
JOIN Inventory inv
ON rds.cInvCode=inv.cInvCode
JOIN Department det2
ON LEFT(rd.cDepCode,)=det2.cDepCode
JOIN InventoryClass ic2
ON LEFT(rds.cInvCode,)=ic2.cInvCCode
WHERE Ic2.cInvCCode='' OR Ic2.cInvCCode=''
GROUP BY det2.cDepName,ic2.cInvCName,rd.dDate,ic2.cInvCCode
UNION
SELECT sum(rds.iPrice ) AS iPrice ,ic2.cInvCName,ic2.cInvCCode,det2.cDepName,rd.dDate
FROM rdrecord11 rd
JOIN rdrecords11 rds
ON rd.id=rds.id
JOIN Inventory inv
ON rds.cInvCode=inv.cInvCode
JOIN Department det2
ON LEFT(rd.cDepCode,)=det2.cDepCode
JOIN InventoryClass ic2
ON LEFT(rds.cInvCode,)=ic2.cInvCCode
WHERE Ic2.cInvCCode=''
GROUP BY det2.cDepName,ic2.cInvCName,rd.dDate,ic2.cInvCCode)a declare @YFDate datetime
DECLARE @MFDate datetime
SET @YFDate=CONVERT(datetime,convert(nvarchar(),YEAR(@LDate))+'-01-01')
SET @MFDate=CONVERT(datetime,convert(nvarchar(),YEAR(@LDate))+'-'+convert(nvarchar(),month(@LDate))+'-01') SELECT T0.cDepname,T0.cInvCName,T1.a as TDate,T2.a as TMonth,T3.a as TYear from(
(SELECT cDepname,cInvCCode,cInvCName from #templxc group BY cDepname,cInvCCode,cInvCName) T0
left join
(SELECT cInvCCode,SUM(iPrice) As a FROM #templxc where dDate=@LDate GROUP BY cInvCCode) T1
on T0.cInvCCode=T1.cInvCCode
left join
(select cInvCCode,SUM(iPrice) As a FROM #templxc where dDate>=@MFDate and dDate<=@LDate GROUP BY cInvCCode) T2
on T1.cInvCCode=T2.cInvCCode
left join
(select cInvCCode,SUM(iPrice) As a FROM #templxc where dDate>=@YFDate and dDate<=@LDate GROUP BY cInvCCode) T3
on T1.cInvCCode=T3.cInvCCode) ORDER BY cDepname END
GO

不同部门费用

SELECT sum(rds.iPrice ) AS iPrice ,ic2.cInvCName,ic2.cInvCCode,det2.cDepName,det2.cDepCode,rd.dDate
FROM rdrecord11 rd --材料出库单主表
JOIN rdrecords11 rds --材料出库单子表
ON rd.id=rds.id
JOIN Inventory inv --存货档案
ON rds.cInvCode=inv.cInvCode
JOIN Department det2 --部门基本信息
ON rd.cDepCode=det2.cDepCode
JOIN InventoryClass ic2 --存货分类档案
ON LEFT(rds.cInvCode,)=ic2.cInvCCode
WHERE Ic2.cInvCCode='' OR Ic2.cInvCCode=''
GROUP BY det2.cDepName,ic2.cInvCName,rd.dDate,ic2.cInvCCode,det2.cDepCode
UNION
SELECT sum(rds.iPrice ) AS iPrice ,ic2.cInvCName,ic2.cInvCCode,det2.cDepName,det2.cDepCode,rd.dDate
FROM rdrecord11 rd
JOIN rdrecords11 rds
ON rd.id=rds.id
JOIN Inventory inv
ON rds.cInvCode=inv.cInvCode
JOIN Department det2
ON rd.cDepCode=det2.cDepCode
JOIN InventoryClass ic2
ON LEFT(rds.cInvCode,)=ic2.cInvCCode
WHERE Ic2.cInvCCode=''
GROUP BY det2.cDepName,ic2.cInvCName,rd.dDate,ic2.cInvCCode,det2.cDepCode

V

EXEC sys.sp_rename p_lll,p_lll  ——修改名称 旧名字,新名字
DROP PROCEDURE dbo.p_lxc  ——删除

SQL Server 数据库存储过程实例的更多相关文章

  1. 在易语言中调用MS SQL SERVER数据库存储过程方法总结

    Microsoft SQL SERVER 数据库存储过程,根据其输入输出数据,笼统的可以分为以下几种情况或其组合:无输入,有一个或多个输入参数,无输出,直接返回(return)一个值,通过output ...

  2. SQL Server数据库存储过程的异常处理

    SQL Server数据库存储过程的异常处理是非常重要的,明确的异常提示能够帮助我们快速地找到问题的根源,节省很多时间.本文我们就以一个插入数据为例来说明SQL Server中的存储过程怎么捕获异常的 ...

  3. SQL Server数据库存储过程中拼接字符串注意的问题

    在SQL Server数据库中书写复杂的存储过程时,一般的做法是拼接字符串,最后使用EXEC sp_executesql '拼接的字符串' 查询出结果. 先看一段代码: -- ============ ...

  4. C#操作access和SQL server数据库代码实例

    在C#的学习中,操作数据库是比较常用的技术,而access和sql server 数据库的操作却有着不同.那么,有哪些不同呢? 首先,需要引用不同的类.因为有着不同的数据引擎. access:usin ...

  5. sql server系统存储过程大全

    关键词:sql server系统存储过程,mssql系统存储过程 xp_cmdshell --*执行DOS各种命令,结果以文本行返回. xp_fixeddrives --*查询各磁盘/分区可用空间 x ...

  6. sql server数据库中raiserror函数的用法

    server数据库中raiserror的作用就和asp.NET中的throw new Exception一样,用于抛出一个异常或错误.这个错误可以被程序捕捉到. raiserror的常用格式如下:ra ...

  7. 解决修改重命名sql Server数据库名称

    错误: 消息 5030,级别 16,状态 2,第 1 行无法用排他锁锁定该数据库,以执行该操作. 解决方法:(原理一样) 1.将数据库设置为单用户模式 (单用户模式指定一次只有一个用户可访问数据库,该 ...

  8. Sql Server数据库之存储过程

    阅读目录 一:存储过程概述 二:存储过程分类 三:创建存储过程 1.创建无参存储过程 2.修改存储过程 3.删除存储过程 4.重命名存储过程 5.创建带参数的存储过程   简单来说,存储过程就是一条或 ...

  9. SQL Server 数据库的维护(一)__存储过程(procedure)

    --维护数据库-- --存储过程(procedure)-- --概述: SQl Serve的存储过程是由一个或多个T-SQL语句组成的一个集合.常用的程序代码段通常被创建成存储过程,一次创建多次调用, ...

随机推荐

  1. Repository模式中,Update总是失败及其解析(转)

    出处:http://www.cnblogs.com/scy251147/p/3688844.html 关于Entity Framework中的Attached报错的完美解决方案终极版 前发表过一篇文章 ...

  2. mysql报错排查总结

    mysql报错: [root@zabbix ~]# mysql ERROR 2002 (HY000): Can't connect to local MySQL server through sock ...

  3. json&pickle

    用于序列化的两个模块 json,用于字符串 和 python数据类型间进行转换pickle,用于python特有的类型 和 python的数据类型间进行转换Json模块提供了四个功能:dumps.du ...

  4. Linux 随记

    通配符和文件名变量:* ? [] * 查询 $ ls doc1 doc2 document mydoc monday $ ls doc* doc1 doc2 document $ ls  *day m ...

  5. VHDL的库

    STD_LOGIC_ARITH 扩展了UNSIGNED.SIGNED.SMALL_INT(短整型)三个数据类型,并定义了相关的算术运算和转换函数. --======================== ...

  6. 事务不起作用 Closing non transactional SqlSession

    In proxy mode (which is the default), only external method calls coming in through the proxy are int ...

  7. python Cannot uninstall 'numpy'. It is a distutils installed project and thus we cannot accurately determine which files belong to it which would lead to only a partial uninstall.

    在Python中移除(升级)numpy的时候出现: Cannot uninstall 'numpy'. It is a distutils installed project and thus we ...

  8. Spring mvc,jQuery和JSON数据交互

    一.实验环境的搭建 1.Spring mvc jar. 导入spring mvc运行所需jar包.导入如下(有多余) 2.json的支持jar 3.加入jQuery. 选用jquery-3.0.0.m ...

  9. WC Java 实现

    项目 github 地址 一. 实现情况 基本要求 c 统计文件字符数 (实现) w 统计文件词数 (实现) l 统计文件行数(实现) 扩展功能 s 递归处理目录下符合条件得文件(实现) a 返回文件 ...

  10. jvm 中的 ”永生代“

    “方法区” 主要存储的信息包括:常量信息,类信息,方法信息,而且是全局共享的(多线程共享): jvm 有多种实现方式(不同的厂商): 并不是所有的jvm 都有永生代的概念: 通常情况下, 很多人把 “ ...