USE [TNG_KMS]
GO
/****** Object: StoredProcedure [dbo].[SP_S_GetCompletedInjectionReport] Script Date: 18/7/2016 10:52:36 AM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
DROP PROCEDURE [dbo].[SP_S_GetCompletedInjectionReport]
GO
CREATE PROCEDURE [dbo].[SP_S_GetCompletedInjectionReport]
--(
-- -- Add the parameters for the stored procedure here
@dt_DateFrom datetime ,
@dt_DateTo datetime
--)
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
SET FMTONLY OFF;
-- Insert statements for procedure here
DECLARE @DynamicPivotQuery AS NVARCHAR(MAX)
DECLARE @ColumnName AS NVARCHAR(MAX)
SELECT @ColumnName= ISNULL(@ColumnName + ',','') + QUOTENAME(name)
FROM (select name from LookupItems where CategoryID=4) AS AppSector
ORDER BY name
SET @DynamicPivotQuery =
'SELECT * FROM (
select
@@ROWCOUNT No, FormRefNo,
ISNULL(TotalSam,0) BigTotalSam,
R.CreatedTime,R.CompletionDate,
Datediff(dd,CONVERT(Date,R.CreatedTime),R.CompletionDate) ''DaysCompleted'',
LI.Name [AppSector]
from
[TNG_KMS].[dbo].[Request] R,
[TNG_KMS].[dbo].[ProfileGroup] PG,
[TNG_KMS].[dbo].[LookupItems] LI
where R.ProfileGroupID=PG.ID
and PG.AppSectorID=LI.ItemIndex
and LI.CategoryID = 4
and R.RequestStatusID=5
and (R.CompletionDate between @dt_DateFrom and @dt_DateTo)
) as s
PIVOT
(
SUM(BigTotalSam) FOR [AppSector] IN (' +@ColumnName+ ')
) AS pvt'
;
--Execute the Dynamic Pivot Query
EXEC sp_executesql @DynamicPivotQuery,
N'@dt_DateFrom DATETIME, @dt_DateTo DATETIME',
@dt_DateFrom,
@dt_DateTo;
END
GO
error, issue, RnD, notes for my colleagues ... anything related with my job. A good programmer should be a good and fast reader. This log just to cut the costs of my RnD. Nothing personal :)
Showing posts with label MS SQL Server. Show all posts
Showing posts with label MS SQL Server. Show all posts
Monday, 18 July 2016
SQLSERVER Stored Procedure Dynamic Query Pivot Table DateTime parameter
Subscribe to:
Posts (Atom)