根据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 ...
随机推荐
- android应用开发-从设计到实现 2-8 组件与经常使用模式
组件与经常使用模式 前面已经比較全面的介绍了Material Design相关的设计哲学.设计原理和方法论. 这一章開始,我们将看看这些原理是怎样在安卓系统其中得到实践的. 一个应用并非全然从什么都没 ...
- Docker解析及轻量级PaaS平台演练(二)--Docker的一些简单命令
上一篇中,我们对Docker有了一个基本的了解 下面将讨论Docker中Image,Container的相关实际操作 Image管理: 镜像的命名和版本管理: 普通镜像的命名规范 {namespace ...
- Python3环境安装Scrapy爬虫框架过程及常见错误
收录待用,修改转载已取得腾讯云授权 Scrapy安装介绍 Scrapy的安装有多种方式,它支持Python2.7版本及以上或Python3.3版本及以上.下面说明Python3环境下的安装过程. Sc ...
- go同一个目录下的go文件里面不能有多个package
原文: https://golang.org/doc/code.html#PackagePaths -------------------------------------------------- ...
- J2EE规范
J2EE是由SUN提出的用于简化开发企业级应用程序的一系列规范的组合,J2EE基于中间层集成的框架的方式为应用开发提供了一个统一的开发平台.基于容器管理.组件化的模型为企业建立一个高可用性,高可靠性可 ...
- 04-2winPE里面下载系统并安装系统教程
winPE里面下载系统并安装系统教程 首先需要注意的是,你已经使用 装机助理 工具制作好U盘启动盘,通过电脑功能键进入PE界面(不同型号的电脑进入PE界面的功能键不同,根据不同搜索属于她的功能键): ...
- python with上下文的浅谈
python中的with一般用于上下文管理,什么是上下文管理,其实平时我们经常会用到,比如连接数据库 查询数据,操作完成后关闭连接. 还比如打开文件写入数据等操作. 具体实例: class Myres ...
- cygwin开发环境搭建与apt-cyg的应用
1.Cygwin安装 http://www.cygwin.com/下载安装工具 详细安装过程參照http://jingyan.baidu.com/article/6b97984d83dfe51ca2b ...
- chrome 浏览器 的一些控制台技巧
1.查找dom元素.但它并不支持jquery语法. $$("#fock"); // 目前仅仅知道可以查找Dom元素 2.查找dom元素绑定的事件. getEventListen ...
- TortoiseSVN客户端使用方法
SVN对于程序开发来说是非常重要的东西,它是非常不错的版本管理工具,下面介绍一下TortoiseSVN客户端的使用方法. 工具/原料 TortoiseSVN 方法/步骤 如果没有TortoiseS ...