I have the following CrossTab SQL Query & its works fine. However, I have limitation on hard-coding 100 Store No, Is it possible that I can bring StoreNo to be generated dynamically in case if a new StoreNo is inserted.
below is my query:
SELECT
T1.[Menu_Code] AS 'Menu Code',
T1.[Short_Menu_Name] AS 'Menu Name',
SUM(case when T2.Store_id=1 then (T2.PMXUSO + T2.PMXUSG+ T2.PMXUSI+ T2.PMXUSD+ T2.PMXUPR+ T2.PMXUEM+ T2.PMXUMM) else 0 end) AS 'Store No: 1 | Units Sold',
SUM(case when T2.Store_id=1 then ( ( (T2.PMXUSO + T2.PMXUSI+ T2.PMXUSG+ T2.PMXUSD+ T2.PMXUPR+ T2.PMXUEM+ T2.PMXUMM) * (T2.PMXPOB ))+(T2.PMXUSG * T2.PMXPGN) ) else 0 end) AS 'Store No: 1 | Units Sale',
SUM(case when T2.Store_id=2 then (T2.PMXUSO + T2.PMXUSG+ T2.PMXUSI+ T2.PMXUSD+ T2.PMXUPR+ T2.PMXUEM+ T2.PMXUMM) else 0 end) AS 'Store No: 2 | Units Sold',
SUM(case when T2.Store_id=2 then ( ( (T2.PMXUSO + T2.PMXUSI+ T2.PMXUSG+ T2.PMXUSD+ T2.PMXUPR+ T2.PMXUEM+ T2.PMXUMM) * (T2.PMXPOB ))+(T2.PMXUSG * T2.PMXPGN) ) else 0 end) AS 'Store No: 2 | Units Sale'
FROM [Master_Menu_Items] T1 LEFT JOIN [Fact_Qtlysales_CSHPMXP0] T2 ON T1.Menu_code = T2.PMXMIC
WHERE T2.FCT_DATE_KEY=20160710 and T2.Store_id IN (1,2)
GROUP BY T1.[Menu_Code],
T1.[Short_Menu_Name]
ORDER BY T1.[Menu_Code]
Above Query shows two StoreID & I have around 100 which I need to bring them dynamically.