根据funID,personID获取最新规划包项目相关信息
1.定义:根据funID,personID获取最新规划包项目相关信息(code projecttype(阶段) Pname(code+name) projectID)
项目表
tbl_cfg_Project
规划包表
tbl_cfg_ProjectPackageHistory
项目表规划包映射表
tbl_cfg_PackageHistoryProjectMapping
计划版本
tbl_plan_RollMap
USE [ITMS]
GO /****** Object: StoredProcedure [dbo].[usp_padmin_GetLimitingProject] Script Date: 2018/2/27 11:22:00 ******/
SET ANSI_NULLS ON
GO SET QUOTED_IDENTIFIER ON
GO CREATE proc [dbo].[usp_padmin_GetLimitingProject]
@FuncID uniqueidentifier,@PersonID uniqueidentifier
as
if exists(select * from tbl_padmin_DataScope
where realprojectid = '00000000-0000-0000-0000-000000000001'
and FuncID = @FuncID and PersonID = @PersonID)
begin
select a.code,a.projecttype, ' '+isnull(a.code,'') + a.name PName, a.projectID into
#pro --最新规划包包含的所有项目的相关信息 code projecttype(阶段) Pname(code+name) projectID
from tbl_cfg_Project a , (
SELECT * FROM tbl_cfg_ProjectPackageHistory
where RollMapID = (SELECT top 1 RollMapID FROM tbl_plan_RollMap order by StartDate desc , Code desc --最新规划包)
) b, tbl_cfg_PackageHistoryProjectMapping c
where a.name is not null and b.PackageHistoryID = c.PackageHistoryID and c.ProjectID = a.ProjectID
select * from
(
---获取项目中的类型
select distinct ty.* from
(
select null code,-1 projecttype,'未配置项目阶段' PName,newid() projectID
union all
select null code, id projecttype,name,newid() projectID from tblCommonDict where parentid = 58
) ty join #pro on ty.projecttype = #pro.projecttype
union all
select * from #pro
) tbl order by projecttype, left(code,1),len(code),code,PName
end
else
begin
select a.code, a.projecttype, ' '+isnull(a.code,'') + a.name PName, a.projectID into #pro1
from tbl_cfg_Project a join tbl_padmin_DataScope b on a.projectID = b.realprojectID
join tbl_cfg_PackageHistoryProjectMapping c on c.ProjectID = a.ProjectID
join (
SELECT * FROM tbl_cfg_ProjectPackageHistory
where RollMapID = (SELECT top 1 RollMapID FROM tbl_plan_RollMap order by StartDate desc , Code desc)
) d on d.PackageHistoryID = c.PackageHistoryID
where a.name is not null and b.FuncID = @FuncID and b.PersonID = @PersonID
select * from
(
---获取项目中的类型
select distinct ty.* from
(
select null code,-1 projecttype,'未配置项目阶段' PName,newid() projectID
union all
select null code, id projecttype,name,newid() projectID from tblCommonDict where parentid = 58
) ty join #pro1 on ty.projecttype = #pro1.projecttype
union all
select * from #pro1
) tbl order by projecttype, left(code,1),len(code),code,PName
end GO 2.使用:
CREATE TABLE #tmp(
code varchar(100),
projecttype varchar(100),
PName varchar(200),
ProjectID varchar(100)
)
INSERT INTO #tmp EXEC usp_padmin_GetLimitingProject '68093189-0dde-4ae2-b7ba-903ff77b66e6','E87B3AB0-6901-48C2-A30C-E643320BF275' --'{1}','{2}'
drop table #tmp
根据funID,personID获取最新规划包项目相关信息的更多相关文章
- SQL-58 获取有奖金的员工相关信息。
题目描述 获取有奖金的员工相关信息.CREATE TABLE `employees` (`emp_no` int(11) NOT NULL,`birth_date` date NOT NULL,`fi ...
- py脚本 获取当前运行服务的相关信息
一.简介 最近在统计系统中都部署了什么服务,但服务器太多,在没有标准化之前进行整理,还是写脚本收集方便一些. 当然还是需要人工去判断整理表格,为后面标准化做准备.脚本是python2.7的,默认的ce ...
- MSCRM 获取列表所选记录相关信息
问题:如何通过JS获取列表中所选记录信息? 解决办法: The CRM2011 Ribbon has a special set of parameters called 'CrmParameters ...
- C# 获取进程或线程的相关信息
信息来自: http://blog.163.com/kunkun0921@126/blog/static/169204332201293023432113/ using System; using S ...
- C# 使用Environment获取当前程序运行环境相关信息
Enviroment类和AppDomain类前者表示系统级的相关信息,后者表示应用程序级的相关信息. 我常用这两个类获取一些程序运行目录.操作系统位数等信息: string basedir = App ...
- C winpcap 网络抓包 并获取IP TCP 协议的相关信息
以太网协议分析函数: void ethernet_protocol_packet_handle (u_char *argument, const struct pcap_pkthdr *packet_ ...
- JAVA如何利用Swiger获取Linux系统电脑配置相关信息
最近开发java应用程序,涉及到获取Linux服务器相关配置的问题,特地网上搜寻了下,采用Swiger包可以直接获取,再次小结一下,以便于以后能方便使用,也便于其他童鞋们学习. 推荐大家参考链接:ht ...
- 用js获取当前页面的url的相关信息方法
当前页面对应的URL的一些属性: ( http://bbs.xxx.net/forum.php?mod=viewthread&tid=2709692&page=1&extra= ...
- asp.net 获取服务器及客户端的相关信息
1. 在ASP.NET中专用属性:获取服务器电脑名:Page.Server.ManchineName获取用户信息:Page.User获取客户端电脑名:Page.Request.UserHostName ...
随机推荐
- pl/sql中的record用法
create or replace procedure pro1(v_in_empno in number) is --定义一个记录数据类型 type my_emp_record is record( ...
- javascript => 方法的简写形式
https://segmentfault.com/a/1190000002904199 => 是function的简写形式,支持expression 和 statement 两种形式.同时一点很 ...
- js 上传图片进行回显
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- Java定时任务的三种实现方法
译者注:个人觉得用定时任务来跑垃圾回收不是很好的例子,从译者接触到的项目来看,比较常见的是用定时任务来进行非实时计算,清除临时数据.文件等.在本文里,我会给大家介绍3种不同的实现方法:1.普通thre ...
- Split Animation Clip From FBX and Multiply Mode Sprite
Use Script To Creat 2D Animation Clip From Multiply Mode Sprite 很多时候美工拿过来的一张序列帧图片,我们需要转换成 Multiply M ...
- win8.1休眠状态下不能进入系统
win8.1下进入睡眠状态出现的问题: 1.合上盖子或者是点击睡眠状态后唤醒进入锁屏界面.可是仅仅能鼠标移动,键盘全然输入不了,出现假死现象,仅仅能强制重新启动. 2.合上盖子再打开无法唤醒屏幕,必须 ...
- re中match和search的不同
re.match与re.search的区别:re.match只匹配字符串的开始,如果字符串开始不符合正则表达式,则匹配失败,函数返回None:而re.search匹配整个字符串,直到找到一个匹配.
- 移动端H5页面 input 获取焦点时,虚拟键盘挡住input输入框解决方法
在移动端h5开发的时候,发现如果input在页面底部,当触发input焦点的时候会弹出系统虚拟键盘,虚拟键盘会遮挡input输入框.这会很影响用户体验,于是在网上找到了如下的解决办法: 方法一:使用w ...
- linux下统计程序/函数运行时间(转)
一. 使用time 命令 例如编译一个hello.c文件 #gcc hello.c -o hello 生成了hello可执行文件,此时统计该程序的运行时间便可以使用如下命令 #time ./hello ...
- JavaScript | 对象与属性
———————————————————————————————————————————— 对象:JavaScript是基于原型的语言,没有Class,所以将函数作为类 - - - - - - - - ...