Hi @Mohamed Moulana ,
Welcome to Microsoft Q&A!
Please refer below to provide the DDL and sample data so that all of us could understand them better.
create table [tblRST](
[Loc] [nvarchar](5) COLLATE SQL_Latin1_General_CP1_CS_AS NOT NULL,
[Fy] [int] NOT NULL,
[Seq] [int] NOT NULL,
[RSTNo] [nvarchar](6) COLLATE SQL_Latin1_General_CP1_CS_AS NULL,
[RSTDate] [datetime] NULL,
[RSTTypeId] [int] NULL,
[RSTType] [nvarchar](30) COLLATE SQL_Latin1_General_CP1_CS_AS NULL,
[Confirmed] [bit] NULL,
[ConfirmedUser] [nvarchar](20) COLLATE SQL_Latin1_General_CP1_CS_AS NULL,
[ConfirmedDate] [datetime] NULL,
[LastChanged] [timestamp] NULL,
[CreatedOn] [datetime] NULL,
[CreatedBy] [nvarchar](20) COLLATE SQL_Latin1_General_CP1_CS_AS NULL,
[ModifiedOn] [datetime] NULL,
[ModifiedBy] [nvarchar](20) COLLATE SQL_Latin1_General_CP1_CS_AS NULL)
insert into [tblRST] ([Loc], [Fy] ,[Seq], [RSTTypeId] ,[RSTType], [Confirmed] ,[ConfirmedUser] ,[ConfirmedDate]) values
('STD', 21, 1,1, '21/97', 1, 'a', '2021-03-15 18:22:53.303'),
('STD', 21, 2 ,1, '21/90', 1, 'a','2021-03-16 15:41:41.920') ,
('STD', 21, 3, 1, '21/96' ,0,NULL, NULL)
create table [tblRSTDetsItem]
( [Loc] [nvarchar](5) COLLATE SQL_Latin1_General_CP1_CS_AS NOT NULL,
[RSTFy] [int] NOT NULL,
[RSTSeq] [int] NOT NULL,
[RSTDetsSeq] [int] NOT NULL,
[Seq] [int] NOT NULL,
[Barcode] [nvarchar](30) COLLATE SQL_Latin1_General_CP1_CS_AS NULL,
[Qty] [decimal](10, 3) NULL,
[LastChanged] [timestamp] NULL,
[CreatedOn] [datetime] NULL,
[CreatedBy] [nvarchar](20) COLLATE SQL_Latin1_General_CP1_CS_AS NULL,
[ModifiedOn] [datetime] NULL,
[ModifiedBy] [nvarchar](20) COLLATE SQL_Latin1_General_CP1_CS_AS NULL)
insert into [tblRSTDetsItem] ([Loc] ,[RSTFy], [RSTSeq], [RSTDetsSeq], [Seq], [Barcode], [Qty]) values
('STD', 21, 1,1,1, 'AMBOOO' ,2.000),
('STD', 21, 2 ,2,1, 'EAAOOO', 4.000 ),
('STD', 21, 2,1,1, 'EAAOOO' ,1.000),
('STD', 21, 2,2,1, 'AMLOOO', 1.000),
('STD', 21, 3,1,1, 'EAAOOO', 6.000)
After checking your query, I found that there could be no data reported after executing below query:
SELECT Convert(nvarchar,[Loc])+'/'+Convert(nvarchar,[Fy])+'/'+Convert(nvarchar,[Seq]) FROM [tblRST]
WHERE [RSTTypeId] = 1 AND [RSTType] = '21/96' AND [Confirmed] = 1
Actually there was no data meeting these conditions since the Confirmed is 0 when the [RSTType] = '21/96' as below.
I executed below two queries with and without the condition '[Confirmed]=1'.
SELECT Coalesce(Sum([Qty]), 0)
FROM [tblRSTDetsItem]
WHERE [Loc] = 'STD' AND [Barcode] = 'EAAOOO'
AND Convert(nvarchar,[Loc])+'/'+Convert(nvarchar,[RSTFy])+'/'+Convert(nvarchar,[RSTSeq])
IN (SELECT Convert(nvarchar,[Loc])+'/'+Convert(nvarchar,[Fy])+'/'+Convert(nvarchar,[Seq]) FROM [tblRST]
WHERE [RSTTypeId] = 1 AND [RSTType] = '21/96' --AND [Confirmed] = 1
);
Output:
6.000
SELECT Coalesce(Sum([Qty]), 0)
FROM [tblRSTDetsItem]
WHERE [Loc] = 'STD' AND [Barcode] = 'EAAOOO'
AND Convert(nvarchar,[Loc])+'/'+Convert(nvarchar,[RSTFy])+'/'+Convert(nvarchar,[RSTSeq])
IN (SELECT Convert(nvarchar,[Loc])+'/'+Convert(nvarchar,[Fy])+'/'+Convert(nvarchar,[Seq]) FROM [tblRST]
WHERE [RSTTypeId] = 1 AND [RSTType] = '21/96' AND [Confirmed] = 1
);
Output:
0.000
So you could check whether there is any data change while comparing or consider to change the conditions accordingly.
Best regards
Melissa
If the answer is helpful, please click "Accept Answer" and upvote it.
Note: Please follow the steps in our documentation to enable e-mail notifications if you want to receive the related email notification for this thread.