I have this working dynamic statement that contains dynamic column heading based on "Dates" created within a temporary table. I need to do a sum on each column heading to assign the correct value for that date. Example below.
You can copy the below statement to see how it works.
What I would like to do is something like the following.
INSERT INTO (Part_Number, '28-Jan-18' , '29-Jan-18', '30-Jan-18')
Select Part_Number
'28-Jan-18' = 'select sum('28-Jan-18') temp with process_date = "28-Jan-18"
'29-Jan-18' = 'select sum('29-Jan-18') temp with process_date = "29-Jan-18"
'30-Jan-18' = 'select sum('30-Jan-18') temp with process_date = "30-Jan-18"
group Part_Number
--Starting statement
DECLARE @day0 datetime
DECLARE @day1 datetime
DECLARE @day2 datetime
DECLARE @day3 datetime
DECLARE @day4 datetime
DECLARE @day5 datetime
DECLARE @day6 datetime
SET @day6 = CONVERT(varchar(50), (DATEADD(dd, @@DATEFIRST - DATEPART(dw, GETDATE()), GETDATE())), 101)
SET @day5 = CONVERT(varchar(50), (DATEADD(dd, @@DATEFIRST - DATEPART(dw, GETDATE()) - 1, GETDATE())), 101)
SET @day4 = CONVERT(varchar(50), (DATEADD(dd, @@DATEFIRST - DATEPART(dw, GETDATE()) - 2, GETDATE())), 101)
SET @day3 = CONVERT(varchar(50), (DATEADD(dd, @@DATEFIRST - DATEPART(dw, GETDATE()) - 3, GETDATE())), 101)
SET @day2 = CONVERT(varchar(50), (DATEADD(dd, @@DATEFIRST - DATEPART(dw, GETDATE()) - 4, GETDATE())), 101)
SET @day1 = CONVERT(varchar(50), (DATEADD(dd, @@DATEFIRST - DATEPART(dw, GETDATE()) - 5, GETDATE())), 101)
SET @day0 = CONVERT(varchar(50), (DATEADD(dd, @@DATEFIRST - DATEPART(dw, GETDATE()) - 6, GETDATE())), 101)
DECLARE @colName varchar(50)
DECLARE @colName1 varchar(50)
DECLARE @colName2 varchar(50)
DECLARE @colName3 varchar(50)
DECLARE @colName4 varchar(50)
DECLARE @colName5 varchar(50)
DECLARE @colName6 varchar(50)
SET @colName = left(@day0, 11)
SET @colName1 = left(@day1, 11)
SET @colName2 = left(@day2, 11)
SET @colName3 = left(@day3, 11)
SET @colName4 = left(@day4, 11)
SET @colName5 = left(@day5, 11)
SET @colName6 = left(@day6, 11)
--Create temporary table with dynamic column heading and column values
CREATE TABLE #temp (Item_Code varchar(30), Facility_Code varchar(20))
DECLARE @Sql as varchar(300)
set @sql='ALTER TABLE #temp add [' + @colName + '] numeric(10,4), [' + @colName1 + '] numeric(10,4), [' + @colName2 + '] numeric(10,4), [' + @colName3 + '] numeric(10,4), [' + @colName4 + '] numeric(10,4), [' + @colName5 + '] numeric(10,4), [' + @colName6 + '] numeric(10,4)'
EXEC (@Sql)
INSERT INTO #temp VALUES ('8850', '05' , 1234.11888, 2234.11999, 3234.1999, 4234.1999, 5234.1111, 6234.1111, 7234.1111)
SELECT * FROM #temp
DROP TABLE #temp