I would like to sum the forecast qty column for only the first “n” date records. For example for each item number the earliest(or first) three date records
Current Query:
SELECT gen.Item , gen.DemandDate , gen.ForecastQty FROM reports.v_special_demand_800 gen ORDER BY gen.Item, gen.DemandDate ASC
Table
Desired Result
Advertisement
Answer
Assign a row number to each record, partitioning by Item (this will start a new row counter for each Item) and ordering by DemandDate. Then sum the records where the row number is <= N, grouping by Item:
WITH CTE AS ( SELECT *, ROW_NUMBER() OVER (PARTITION BY Item ORDER BY DemandDate) as RowNum FROM reports.v_special_demand_800 ) SELECT Item, SUM(ForecastQty) FROM CTE WHERE RowNum <= 3 GROUP BY Item