add batch remove batch split batch comment selection show hidden batches hide batch highlight batch
db<>fiddle
donate feedback about
By using db<>fiddle, you agree to license everything you submit by Creative Commons CC0.
create table dbo.FalloutClaimReport
(
SubmitterID int
, SubmitterName varchar(50)
, DateReceived date
, ClaimCount int
);

INSERT INTO
dbo.FalloutClaimReport
(
SubmitterID
, SubmitterName
, DateReceived
, ClaimCount
)
VALUES
-- No June 30th
(1, 'A', '2019-07-01', 1)
, (1, 'A', '2019-07-02', 2)
, (1, 'A', '2019-07-03', 3)
, (1, 'A', '2019-07-04', 4)
-- Nothing happened on the fifth for "reasons"
--, (1, 'A', '2019-07-05', 5)
, (1, 'A', '2019-07-06', 6)
, (1, 'A', '2019-07-07', 7)
, (1, 'A', '2019-07-08', 8)
, (1, 'A', '2019-07-09', 9)
, (1, 'A', '2019-07-10', 10)
, (1, 'A', '2019-07-11', 11)
10 rows affected
SELECT
FCR.SubmitterID
, FCR.SubmitterName
, CONVERT(varchar(15), ED.DateReceived, 101) AS DateReceived
, SUM(FCR.ClaimCount) AS TotalCount
FROM
(
-- This logic builds out a list of all the dates that must exist on the report
-- I used the logic for TheLastSundayOfTheFullWeek
SELECT
DATEADD(DAY, D.DayOffset, DATEADD(WEEK, -1, CAST(DATEADD(WEEK, DATEDIFF(WEEK, 0, CAST(GETDATE() AS date)), -1) AS date))) AS DateReceived
FROM
(
-- Generate a series of 7 numbers from 0 t 6
SELECT TOP 7
-1 + ROW_NUMBER() OVER (ORDER BY (SELECT NULL)) AS rn
FROM
sys.all_columns AS AC
) D(DayOffset)
) AS ED
LEFT OUTER JOIN
dbo.FalloutClaimReport AS FCR
ON FCR.DateReceived = ED.DateReceived
GROUP BY
CONVERT(varchar(15), ED.DateReceived, 101)
, FCR.SubmitterID
, FCR.SubmitterName;
SubmitterID SubmitterName DateReceived TotalCount
null null 06/30/2019 null
1 A 07/01/2019 1
1 A 07/02/2019 2
1 A 07/03/2019 3
1 A 07/04/2019 4
null null 07/05/2019 null
1 A 07/06/2019 6
Warning: Null value is eliminated by an aggregate or other SET operation.