I have created this below query, which is calculating sum till each date. This query gives me exact result which am looking for, But the data which it has very big. How can I speed or optimize it?
IF OBJECT_ID('TEMPDB..#temp')IS NOT NULL
DROP TABLE #temp
IF OBJECT_ID('TEMPDB..#temp1')IS NOT NULL
DROP TABLE #temp1
Declare @DateFrom DateTime
Set @DateFrom = CONVERT(DATE,DATEADD(D,-datepart(d,getdate())+1,DATEADD(M,-1,GETDATE())))
Declare @DateTo DateTime
Set @DateTo = CONVERT(DATE,DATEADD(D,-DATEPART(D,getdate()),GETDATE()))
Select
Date
,[Item No_]
,case when Sum(ILE.Quantity)>0 and [Posting Date]=Date then Sum(ILE.Quantity) else 0 end AS [In Quantity],
case when Sum(ILE.Quantity)<0 and [Posting Date]=Date then Sum(ILE.Quantity) else 0 end AS [Out Quantity],
(Sum(ILE.Quantity))Closing
into #temp
from Calender C left Join [Snowman Logistics Limited$Item Ledger Entry]ILE on Cast(ILE.[Posting Date]as date)<=C.Date
Group by Date,[Item No_],[Posting Date]
Select Date,[Item No_]
,SUm([In Quantity])[In Quantity],Sum([Out Quantity])[Out Quantity],Sum(Closing)Closing from #temp where Date Between @DateFrom and @DateFrom
group by Date,[Item No_]