Here is the query. Maybe it will help explain the problem.
declare @Store_number int
declare @Date_Start datetime
declare @Date_Stop datetime
declare @Date Datetime
set @store_number = 4
set @Date_Start = '1/1/03'
set @Date_Stop = '2/1/03'
-- Determine the last date a cashier's report is posted for
declare @date datetime
if getdate() < @Date_stop
begin
set @date = getdate()
end
else
set @date = @DateStop
select @date
SELECT DAILY_SALES.STORE_NUMBER, CAFETERIA.CAFETERIA,
CURR_DATE,
SUM(NET_SALES_CALC) AS ThisYR_net,
SUM(TOTAL_CUSTOMER_COUNT) AS ThisYR_CC,
CURR_DATE - 364 AS last_date,
(SELECT SUM(net_sales_calc) FROM dbo.DAILY_SALES AS lastsales WHERE lastsales.curr_date = daily_sales.curr_date - 364 AND daily_sales.store_number = lastsales.store_number) AS lastYR_net,
(SELECT SUM(Total_customer_count) FROM dbo.DAILY_SALES AS lastsales WHERE lastsales.curr_date = daily_sales.curr_date - 364 AND daily_sales.store_number = lastsales.store_number) AS lastYR_CC,
(select SUM(NET_SALES_CALC) - (SELECT SUM(net_sales_calc) FROM dbo.DAILY_SALES AS lastsales WHERE lastsales.curr_date = daily_sales.curr_date - 364 AND daily_sales.store_number = lastsales.store_number)) as Salesdiff,
(select SUM(TOTAL_CUSTOMER_COUNT) - (SELECT SUM(Total_customer_count)FROM dbo.DAILY_SALES AS lastsales
WHERE lastsales.curr_date = daily_sales.curr_date - 364 AND daily_sales.store_number = lastsales.store_number)) as Customer_Diff FROM dbo.DAILY_SALES, CAFETERIA
where daily_sales.store_number = @Store_number
AND DAILY_SALES.STORE_NUMBER = CAFETERIA.STORE_NUMBER
and curr_date between @Date_Start and
--***********************************************
(select max(curr_date) from daily_sales as ds where ds.store_number = daily_sales.store_number)
GROUP BY DAILY_SALES.STORE_NUMBER, Curr_date, CAFETERIA.CAFETERIA
Order by daily_sales.Store_number
GO