as last solution , as last solution ,
https://learn.microsoft.com/en-us/answers/questions/1359033/expected-output-required
Condition
,if O_Value and O_Date is not null against item in itemmasterfile table, then qty from Probale table against relevant item before O_Date will be ignore and on word qty from O_Date will be consider .
Now i want to get data before starting date ,as below i tried but not expected result is coming
@LiHongMSFT-4306
Create table #ItemMasterFile (Codeitem int,I_Name varchar(50),O_QTY int,O_Date date)
Create table #Probale (Prdno int, Codeitem int,P_QTY int,P_Date date)
insert into #ItemMasterFile values (111,'Apple',Null,Null)
insert into #ItemMasterFile values (112,'Banana',5,'2023-08-31')
insert into #ItemMasterFile values (113,'Oragne',Null,Null)
insert into #Probale values (0002,112,1,'2023-08-25')
insert into #Probale values (0003,112,1,'2023-09-03')
insert into #Probale values (0004,112,1,'2023-09-04')
insert into #Probale values (0005,113,1,'2023-09-05')
insert into #Probale values (0005,111,1,'2023-09-03')
DECLARE @DateStart DATE,
@DateEnd DATE
SET @DateStart = '2023-09-05'
SET @DateEnd = '2023-09-06'
;WITH CTE AS
(
SELECT I.Codeitem,P.P_QTY,
CASE WHEN O_DATE BETWEEN @DateStart AND @DateEnd THEN I.O_QTY ELSE NULL END AS O_QTY
FROM #Probale P
JOIN #ItemMasterFile I ON I.Codeitem=P.Codeitem
WHERE (P.P_Date >= I.O_Date) OR I.O_Date IS NULL and p.P_Date < @DateStart
)
SELECT Codeitem,ISNULL(O_QTY,0) + SUM(P_QTY) AS QTY
FROM CTE
GROUP BY Codeitem,O_QTY
ORDER BY Codeitem
drop table #ItemMasterFile
drop table #Probale
Expected Output
