Click here to Skip to main content
15,881,588 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
I have two detail table and which is issue and receive i want output query which show issue wt - receive wt = balance wt?

issueDetails
IssueDetailsId	ItemId	IssueWt	     IssuePr   FineWt
1		          37	 484.8	       93.11  451.397
2		          48	 16.88	      100	    16.88


ReceiveDetails
ReceiveDetailsId	IssueDetailsId	ItemId	ReceiveWt	ReceivePr	
1		               2	         48 	  6.88	      100	    
2		               2	         48 	  5.00	      100	


Output
IssueDetailsId   itemId     IssueWt     RecWt    BalanceWt
2                  48        484.80      0        484.80
2                  48         16.88      11.88      5.00


What I have tried:

SELECT
  tblLotAdditionIssueDetails.ItemId,
  tblItemMaster.ItemName,
  SUM(tblLotAdditionIssueDetails.IssueWt) AS IssuWt,
  SUM(tblLotAdditionReceiveDetails.ReceiveWt)
  AS ReceiveWt,
  tblLotAdditionIssueDetails.IssuePr,
  tblLotAdditionIssueDetails.IssueWt - tblLotAdditionReceiveDetails.ReceiveWt AS BalanceWt,
  tblLotAdditionIssueDetails.IssueDetailsId
FROM tblLotAdditionIssueDetails
INNER JOIN tblItemMaster
  ON tblLotAdditionIssueDetails.ItemId = tblItemMaster.ItemId
LEFT OUTER JOIN tblLotAdditionReceiveDetails
  ON tblLotAdditionIssueDetails.ItemId = tblLotAdditionReceiveDetails.ItemId
  AND tblLotAdditionIssueDetails.IssueDetailsId = tblLotAdditionReceiveDetails.IssueDetailsId
GROUP BY tblLotAdditionIssueDetails.ItemId,
         tblItemMaster.ItemName,
         tblLotAdditionIssueDetails.IssuePr,
         tblLotAdditionIssueDetails.IssueWt - tblLotAdditionReceiveDetails.ReceiveWt,
         tblLotAdditionIssueDetails.IssueDetailsId
Posted
Updated 8-Oct-22 7:58am
Comments
[no name] 8-Oct-22 12:37pm    
Instead of a join, I think a SELECT and UNION and then a GROUP BY / SUM would be simpler.
NNandan 10-Oct-22 3:33am    
Hi Gerry thanks you give me solution and its work. wow!!! thanks

1 solution

You need something like this:

SQL
SELECT I.IssueDetailsId, I.ItemId, I.IssueWt, COALESCE(D.SumRWt, 0) AS ReceiveWt, 
   I.IssueWt - COALESCE(D.SumRWt, 0) AS BalaceWt
FROM IssueTbl AS I
LEFT JOIN 
(
 SELECT ItemId, SUM(ReceiveWt) AS SumRWt
 FROM DetailsTbl 
 GROUP BY ItemId
) AS D
ON D.ItemId = I.ItemId;


SQL Server 2019 | db<>fiddle[^]
 
Share this answer
 

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900