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获取最新规划包项目相关信息的更多相关文章

  1. SQL-58 获取有奖金的员工相关信息。

    题目描述 获取有奖金的员工相关信息.CREATE TABLE `employees` (`emp_no` int(11) NOT NULL,`birth_date` date NOT NULL,`fi ...

  2. py脚本 获取当前运行服务的相关信息

    一.简介 最近在统计系统中都部署了什么服务,但服务器太多,在没有标准化之前进行整理,还是写脚本收集方便一些. 当然还是需要人工去判断整理表格,为后面标准化做准备.脚本是python2.7的,默认的ce ...

  3. MSCRM 获取列表所选记录相关信息

    问题:如何通过JS获取列表中所选记录信息? 解决办法: The CRM2011 Ribbon has a special set of parameters called 'CrmParameters ...

  4. C# 获取进程或线程的相关信息

    信息来自: http://blog.163.com/kunkun0921@126/blog/static/169204332201293023432113/ using System; using S ...

  5. C# 使用Environment获取当前程序运行环境相关信息

    Enviroment类和AppDomain类前者表示系统级的相关信息,后者表示应用程序级的相关信息. 我常用这两个类获取一些程序运行目录.操作系统位数等信息: string basedir = App ...

  6. C winpcap 网络抓包 并获取IP TCP 协议的相关信息

    以太网协议分析函数: void ethernet_protocol_packet_handle (u_char *argument, const struct pcap_pkthdr *packet_ ...

  7. JAVA如何利用Swiger获取Linux系统电脑配置相关信息

    最近开发java应用程序,涉及到获取Linux服务器相关配置的问题,特地网上搜寻了下,采用Swiger包可以直接获取,再次小结一下,以便于以后能方便使用,也便于其他童鞋们学习. 推荐大家参考链接:ht ...

  8. 用js获取当前页面的url的相关信息方法

    当前页面对应的URL的一些属性: ( http://bbs.xxx.net/forum.php?mod=viewthread&tid=2709692&page=1&extra= ...

  9. asp.net 获取服务器及客户端的相关信息

    1. 在ASP.NET中专用属性:获取服务器电脑名:Page.Server.ManchineName获取用户信息:Page.User获取客户端电脑名:Page.Request.UserHostName ...

随机推荐

  1. 【CloudFoundry】架构、设计参考

    参考资料: Cloud Foundry:http://baike.baidu.com/link?url=eIfPiUI8UlsqwnnSmmZ-WFyzrf38P33lJae4Hipsd0ynwXZp ...

  2. asp.net权限控制的方式

    我们在使用asp.net开发Web程序的时候经常需要进行一些权限控制,如: 限制用户没有登陆就无法查看一些页面,又或者是说登陆之后如果不是管理员,或是没有响应的权限就无法进行相关的操作. 实现的方法有 ...

  3. [TypeScript] Dynamically Allocate Function Types with Conditional Types in TypeScript

    Conditional types take generics one step further and allow you to test for a specific condition, bas ...

  4. 踩坑记:httpComponents 的 EntityUtils

    今天写的一个服务程序,有人报告获得的数据中文乱码,而我是用 apache 通过 httpComponents 去取得数据的.于是开启日志的 debug 级别. 在日志里果然发现中文不见了,有乱码出现: ...

  5. java集合框架小结

    总结例如以下: 1.假设要求线程安全的, 使用Vector.Hashtable 2.假设不要求线程安全,应该使用ArrayList.LinkedList.HashMap 3.假设要求有映射关系,键值对 ...

  6. 自定义通用dialogFragment

    代码地址如下:http://www.demodashi.com/demo/12844.html 前言 之前写过一篇dialogFragmnet封装默认dialog的文章 DialogFragment创 ...

  7. python challenge - map.py

    Hint: K->M    O->Q    E->G everybody thinks twice before solving this. g fmnc wms bgblr rpy ...

  8. paho-mqtt 学习笔记

    Installation The latest stable version is available in the Python Package Index (PyPi) and can be in ...

  9. systemd 管理python 程序

    [Unit] Description = test-minapp After = network.target [Service] PermissionsStartOnly = true PIDFil ...

  10. linux使用fdisk命令操作硬盘

    知识点: MBR:Master Boot Record 主引导记录 在硬盘0柱面 0磁头的第一个扇区,占512字节(3部分 主引导程序 446字节,硬盘分区表DPT[disk partion tabl ...