22,209
社区成员
发帖
与我相关
我的任务
分享
select *
from (select OST.TypeName as OSName ,bur.BureauName,osrr.[ReceiverNumber],osrr.[ReceiverDateTime]
FROM [OA_OfficeSuppliestRequisitionedRecord] as OSRR
left join OA_Employee as UserInfo on osrr.SuppliesUserId=UserInfo.EmpID
left join [SYS_Bureau] as Bur on UserInfo.BureauID=Bur.BureauID
left join OA_OfficeSuppliesType as OST on OSRR.SuppliesType=OST.ID)as b
pivot( max( b.[ReceiverNumber] ) for b.BureauName in (办公室,办信处)) m
select * from (select OST.TypeName as OSName ,bur.BureauName,osrr.[ReceiverNumber],osrr.[ReceiverDateTime]
FROM [OA_OfficeSuppliestRequisitionedRecord] as OSRR
left join OA_Employee as UserInfo on osrr.SuppliesUserId=UserInfo.EmpID
left join [SYS_Bureau] as Bur on UserInfo.BureauID=Bur.BureauID
left join OA_OfficeSuppliesType as OST on OSRR.SuppliesType=OST.ID)as b
pivot( max( b.[ReceiverNumber]) for b.BureauName in (办公室,办信处,督查处,复查复核处,机关党委,接访处,网络处,综合处))m
where [ReceiverDat
字段断掉了。
create proc Proc_BureauReceiverStatistics
@ReceiverDateTimeBegin nvarchar(500),
@ReceiverDateTimeEnd nvarchar(500)
as
declare @BurName nvarchar(500)
set @BurName='';
select @BurName=@BurName+','+BureauName from [SYS_Bureau] where BureauID>1 group by BureauName
set @BurName=STUFF(@BurName,1,1,'');
if @ReceiverDateTimeBegin is not null
begin
set @BurName='
select * from (select OST.TypeName as OSName ,bur.BureauName,osrr.[ReceiverNumber],osrr.[ReceiverDateTime]
FROM [OA_OfficeSuppliestRequisitionedRecord] as OSRR
left join OA_Employee as UserInfo on osrr.SuppliesUserId=UserInfo.EmpID
left join [SYS_Bureau] as Bur on UserInfo.BureauID=Bur.BureauID
left join OA_OfficeSuppliesType as OST on OSRR.SuppliesType=OST.ID)as b
pivot( max( b.[ReceiverNumber]) for b.BureauName in ('+@BurName+'))m
where [ReceiverDateTime] between '''+@ReceiverDateTimeBegin+''' and '''+@ReceiverDateTimeEnd +''';';
end else begin
set @BurName='
select * from (select OST.TypeName as OSName ,bur.BureauName,osrr.[ReceiverNumber],osrr.[ReceiverDateTime]
FROM [OA_OfficeSuppliestRequisitionedRecord] as OSRR
left join OA_Employee as UserInfo on osrr.SuppliesUserId=UserInfo.EmpID
left join [SYS_Bureau] as Bur on UserInfo.BureauID=Bur.BureauID
left join OA_OfficeSuppliesType as OST on OSRR.SuppliesType=OST.ID)as b
pivot( max( b.[ReceiverNumber]) for b.BureauName in ('+@BurName+'))m ';
end
exec(@BurName);
SELECT OSNAME ,
RECEIVERDATETIME ,
ISNULL(办公室, 0) 办公室 ,
ISNULL(办信处, 0) 办信处
FROM ( SELECT OST.TypeName AS OSName ,
bur.BureauName ,
osrr.[ReceiverNumber] ,
osrr.[ReceiverDateTime]
FROM [OA_OfficeSuppliestRequisitionedRecord] AS OSRR
LEFT JOIN OA_Employee AS UserInfo ON osrr.SuppliesUserId = UserInfo.EmpID
LEFT JOIN [SYS_Bureau] AS Bur ON UserInfo.BureauID = Bur.BureauID
LEFT JOIN OA_OfficeSuppliesType AS OST ON OSRR.SuppliesType = OST.ID
) AS b PIVOT( MAX(b.[ReceiverNumber]) FOR b.BureauName IN ( 办公室, 办信处 ) ) m
SELECT *
FROM ( SELECT OST.TypeName AS OSName ,
bur.BureauName ,
ISNULL(osrr.[ReceiverNumber], 0) [ReceiverNumber] ,
osrr.[ReceiverDateTime]
FROM [OA_OfficeSuppliestRequisitionedRecord] AS OSRR
LEFT JOIN OA_Employee AS UserInfo ON osrr.SuppliesUserId = UserInfo.EmpID
LEFT JOIN [SYS_Bureau] AS Bur ON UserInfo.BureauID = Bur.BureauID
LEFT JOIN OA_OfficeSuppliesType AS OST ON OSRR.SuppliesType = OST.ID
) AS b PIVOT( MAX(b.[ReceiverNumber]) FOR b.BureauName IN ( 办公室, 办信处 ) ) m