The below sql code is my attempt to Sum multiple data date columns
RECEIVEDATE, TENDERDATE and SHIPDATE
using a single "as of date" data range
-- Declare variable
DECLARE @BeginDate date
DECLARE @EndDate date
DECLARE @asofdate date
DECLARE @NumberofDays int = 0
DECLARE @daycnt int = 0
-- set Begining and Ending date range
set @BeginDate = '2023-04-15'
Set @EndDate = '2023-04-18'
set @NumberofDays = DateDiff(day, @BeginDate,@EndDate) +1
set @asofdate = @BeginDate
-- initiate loop ( not to experts - there has to be a better way )
while (@daycnt < @NumberofDays)
begin
SELECT [VPCCODE], [VPCNAME], @asofdate as 'P_DATE',
SUM(CASE when CAST(RECEIVEDATE as DATE) = @asofdate THEN 1 else 0 end) AS RECEIVED,
SUM(CASE when CAST(TENDERDATE as DATE) = @asofdate THEN 1 else 0 end) AS TENDERED,
SUM(CASE when CAST(SHIPDATE as DATE) = @asofdate THEN 1 else 0 end) AS SHIPPED
FROM vpc.Inventory
WHERE VPCCODE = 091
GROUP BY [VPCCODE],[VPCNAME]
order by P_DATE
set @asofdate = DATEADD(day, 1, @asofdate)
set @daycnt = @daycnt+1
end
**Current SQL code above creates 4 individual result sets for each P_DATE **
I would like to have 1 result (se example below
Please advise if this is possible and assist with code examples.
Thank you in advance for your support
example of vpc.inventory file