This query filters out the weekends
😎
USE TEEST;
GO
SET NOCOUNT ON;
DECLARE @SAMPLE_SIZE INT = 100;
;WITH T(N) AS (SELECT X.N FROM (VALUES (0),(0),(0),(0),(0),(0),(0),(0),(0),(0)) X(N))
, NUMS(N) AS (SELECT TOP(@SAMPLE_SIZE) ROW_NUMBER() OVER (ORDER BY @@VERSION) AS N
FROM T T1,T T2,T T3)
,SAMPLE_DATA AS
(
SELECT
NM.N AS SD_RID
,DATEADD(DAY,NM.N,GETDATE() - 15) AS SD_DATE
,1 + (ABS(CHECKSUM(NEWID())) % 3 ) AS SD_GROUP
,ABS(CHECKSUM(NEWID())) % 1000 AS SD_VALUE
FROM NUMS NM
)
SELECT
SD.SD_GROUP
,SUM(SD.SD_VALUE) AS [Forecast]
--,SD.SD_RID
--,SD.SD_DATE
FROM SAMPLE_DATA SD
WHERE SD.SD_DATE >= CONVERT(DATE,GETDATE(),0)
AND SD.SD_DATE < CONVERT(DATE,GETDATE() + 29,0)
AND (DATEDIFF(DAY,0,SD.SD_DATE) % 7) < 5
GROUP BY SD.SD_GROUP;