Hello,
I am using pivot query from sql to get output in mvc. now I want one more row above week that is month in excel.
Can someone please help me to do this. I appreciate your assistance.
ALTER PROCEDURE [dbo].[DownloadTemplatePlannedQty]
-- Add the parameters for the stored procedure here
@PackageID INT,
@StartDate DATETIME,
@EndDate DATETIME
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
SET FMTONLY OFF;
-- interfering with SELECT statements.
SET NOCOUNT ON;
DROP TABLE IF EXISTS dbo.#PMTABLE;
SELECT N.MaterialDetailsID AS MaterialId, N.MaterialCode, N.MaterialName,ISNULL(mp.RevTotalQty,0) as TotalQuantity,S.[importeddate],
ISNULL(S.PlanedQty,0) AS PlanedQty
INTO #PMTABLE
FROM tblMaterialMaster N
INNER JOIN tblMaterialProject MP
on N.MaterialDetailsID=MP.MaterialDetailsID
FULL OUTER JOIN (Select * from tblPlanedQty where PackageID=@PackageID) S ON N.MaterialDetailsID=S.MaterialID
WHERE
--S.PackageID=@PackageID or
MP.PackageID=@PackageID
DROP TABLE IF EXISTS dbo.#TEMPWeeks;
------------------------------
;WITH cteMonday AS (SELECT 1 AS DayID,@StartDate AS FromDate,DATENAME(dw, @StartDate) AS Dayname
UNION ALL SELECT cteMonday.DayID + 1 AS DayID, DATEADD(d, 1 ,cteMonday.FromDate), DATENAME(dw, DATEADD(d, 1 ,cteMonday.FromDate)) AS Dayname
FROM cteMonday
WHERE DATEADD(d,1,cteMonday.FromDate) < @EndDate
)
SELECT FromDate as ImpDate, Dayname INTO #TEMPWeeks
FROM cteMonday
WHERE DayName LIKE 'Monday'
OPTION (MaxRecursion 1000)
DECLARE @cols NVARCHAR (MAX)
SELECT @cols = COALESCE (@cols + ',[' + CONVERT(NVARCHAR, [ImpDate], 106) + ']',
'[' + CONVERT(NVARCHAR, [ImpDate], 106) + ']')
FROM (SELECT DISTINCT [ImpDate] FROM #TEMPWeeks) PV
ORDER BY [ImpDate]
DECLARE @query NVARCHAR(MAX)
SET @query = '
SELECT * FROM
(
SELECT * FROM #PMTABLE
) x
PIVOT
(
SUM(PlanedQty)
FOR [importeddate] IN (' + @cols + ')
) p
'
EXEC SP_EXECUTESQL @query
END