I have such a situation, I have a table where for some reason a column called STORE_NUMBER gets repeated in the actual result multiple times so the result goes by item level and not a sum of results for a store_number.
Here is my code. Does anyone know how I can adjust the code (group it by a store) so that I have 1 line for STORE_NUMBER 1 and 1 line for STORE_NUMBER 2 etc. and also summing all the results for each specific store?
SELECT s.DEAGY AS 'AGENCY', l.cmschn AS 'MASTER_CHAIN', s.DECHN AS 'CHAIN', s.DESTR AS 'STORE_NUMBER', s.DEWEDT AS 'WK_ENDING',
CASE WHEN s.DEIO='O' AND s.DEAGY = 10 AND s.DECHN = 'WM' THEN s.DEQTY ELSE 0 END AS 'OB_UNITS',
CASE WHEN sm.DEIO='I' AND sm.DEAGY = 10 AND sm.DECHN = 'WM' THEN -1 * sm.DEQTY ELSE 0 END AS 'RET_UNITS',
CAST (( CASE WHEN s.DEIO='O' AND s.DEAGY = 10 AND s.DECHN = 'WM' THEN s.DEQTY ELSE '0' END) AS int)
-
CAST ( ( CASE WHEN sm.DEIO='I' AND sm.DEAGY = 10 AND sm.DECHN = 'WM' THEN -1 * sm.DEQTY ELSE '0' END ) AS int) AS 'NET_UNITS',
CAST (( CASE WHEN sm.DEIO='I' AND sm.DEAGY = 10 AND sm.DECHN = 'WM' THEN -1 * sm.DEQTY ELSE 0 END) AS Money)
/
CAST ( ( CASE WHEN s.DEIO='O' AND s.DEAGY = 10 AND s.DECHN = 'WM' THEN s.DEQTY ELSE 0 END ) AS Money)
*
CAST (100 AS Money) AS '%RET_UNITS',
CASE
WHEN s.DEIO='O' AND s.DEAGY = 10 AND s.DECHN = 'WM' THEN s.DEQTY * s.DERSP ELSE '0'
END AS OB_BILLING,
CASE
WHEN sm.DEIO='I' AND sm.DEAGY = 10 AND sm.DECHN = 'WM' THEN (-1 * SM.DEQTY) * sm.DERSP ELSE 0
END AS RET_BILLING,
CAST ( ( CASE WHEN s.DEIO='O' AND s.DEAGY = 10 AND s.DECHN = 'WM' THEN s.DEQTY * s.DERSP ELSE '0' END)
AS MONEY)
-
CAST ( ( CASE WHEN sm.DEIO='I' AND sm.DEAGY = 10 AND sm.DECHN = 'WM' THEN (-1 * sm.DEQTY) * sm.DERSP ELSE '0' END ) AS MONEY) AS 'NET_BILLING',
CAST (( CASE WHEN sm.DEIO='I' AND sm.DEAGY = 10 AND sm.DECHN = 'WM' THEN (-1 * SM.DEQTY) * sm.DERSP ELSE 0
END) AS Money)
/
CAST ( ( CASE WHEN s.DEIO='O' AND s.DEAGY = 10 AND s.DECHN = 'WM' THEN s.DEQTY * s.DERSP ELSE '0' END) AS Money)
*
CAST (100 AS Money) AS '%RET_BILLING',
CASE
WHEN s.DEIO='O' AND s.DEAGY = 10 AND s.DECHN = 'WM' THEN s.DEQTY * s.DERPRC ELSE 0
END AS OB_MSRP,
CASE
WHEN sm.DEIO='I' AND sm.DEAGY = 10 AND sm.DECHN = 'WM' THEN ( -1 * sm.DEQTY) * sm.DERPRC ELSE 0
END AS RET_MSRP,
CAST ( ( CASE WHEN s.DEIO='O' AND s.DEAGY = 10 AND s.DECHN = 'WM' THEN s.DEQTY * s.DERPRC ELSE '0' END) AS MONEY)
-
CAST ( ( CASE WHEN sm.DEIO='I' AND sm.DEAGY = 10 AND sm.DECHN = 'WM' THEN (-1 * sm.DEQTY) * sm.DERPRC ELSE '0' END ) AS MONEY) AS 'NET_MSRP',
CAST (( CASE WHEN sm.DEIO='I' AND sm.DEAGY = 10 AND sm.DECHN = 'WM' THEN ( -1 * sm.DEQTY) * sm.DERPRC ELSE 0 END) AS Money)
/
CAST ( ( CASE WHEN s.DEIO='O' AND s.DEAGY = 10 AND s.DECHN = 'WM' THEN s.DEQTY * s.DERPRC ELSE 0
END ) AS Money)
*
CAST (100 AS int) AS '%RET_MSRP'
INTO ##temp6
FROM REPIT.SMPDTA.SMPDTLM s
JOIN REPIT.LEVYDTA.LDSCHNM l
ON s.DEAGY=l.CMAGY AND s.DECHN=l.CMCHN
JOIN LEVYDTA.SMPRTNM sm
ON s.DEAGY=sm.DEAGY AND s.DECHN=sm.DECHN AND s.DESTR=sm.DESTR AND s.DEWEDT=sm.DEWEDT
where s.DEWEDT = 20210807 AND s.DEAGY=10 AND s.DECHN='WM';