Stock query Require

Analyst_SQL 3,576 Reputation points
2022-02-09T11:38:50.33+00:00

Below is data and output is require ,

CREATE TABLE #ItemMasterFile(CodeItem INT,Descriptionitem VARCHAR(50))    
     
CREATE TABLE #Bigbaleprd(BID INT,CodeItem INT,prdQTY INT,Bweight int,Entrydate DATETIME)    
     
CREATE TABLE #DispatchM(DID INT, Entrydate DATETIME)    
CREATE TABLE #DispatachD(ID INT,DID int,BID int,Codeitem int,prdQTY int,Bweight int,)    
        
INSERT INTO #ItemMasterFile VALUES(1,'A')    
INSERT INTO #ItemMasterFile VALUES(2,'B')    
INSERT INTO #ItemMasterFile VALUES(3,'C')    
INSERT INTO #ItemMasterFile VALUES(4,'D')    
INSERT INTO #ItemMasterFile VALUES(5,'e')    
INSERT INTO #ItemMasterFile VALUES(6,'f')    
INSERT INTO #ItemMasterFile VALUES(7,'g')    
INSERT INTO #ItemMasterFile VALUES(8,'h')    
INSERT INTO #ItemMasterFile VALUES(9,'K')    
INSERT INTO #ItemMasterFile VALUES(10,'L')    
INSERT INTO #ItemMasterFile VALUES(11,'M')    
     
  
INSERT INTO #Bigbaleprd VALUES(10006,3,1,400,'07-02-2022')    
INSERT INTO #Bigbaleprd VALUES(10007,1,1,300,'07-02-2022')    
INSERT INTO #Bigbaleprd VALUES(10008,3,1,200,'07-02-2022')    
INSERT INTO #Bigbaleprd VALUES(10009,11,1,150,'07-02-2022')     
INSERT INTO #Bigbaleprd VALUES(10010,8,1,100,'07-02-2022')     
INSERT INTO #Bigbaleprd VALUES(10011,1,1,300,'08-02-2022')    
INSERT INTO #Bigbaleprd VALUES(10012,3,1,200,'08-02-2022')    
INSERT INTO #Bigbaleprd VALUES(10013,11,1,150,'08-02-2022')    
INSERT INTO #Bigbaleprd VALUES(10014,10,1,250,'08-02-2022')    
INSERT INTO #Bigbaleprd VALUES(10018,10,1,50,'08-02-2022')    
INSERT INTO #Bigbaleprd VALUES(10015,8,1,900,'09-02-2022')    
INSERT INTO #Bigbaleprd VALUES(10016,9,1,800,'09-02-2022')    
INSERT INTO #Bigbaleprd VALUES(10017,9,1,600,'09-02-2022')    
     
INSERT INTO #DispatchM VALUES(1001,'08-02-2022')    
INSERT INTO #DispatchM VALUES(1002,'09-02-2022')    
     
INSERT INTO #DispatachD VALUES(1,1001,10011,1,1,300)    
INSERT INTO #DispatachD VALUES(2,1001,10012,3,1,200)    
INSERT INTO #DispatachD VALUES(3,1001,10013,11,1,150)    
INSERT INTO #DispatachD VALUES(4,1001,10014,10,1,250)    
INSERT INTO #DispatachD VALUES(5,1002,10015,8,1,900)    
INSERT INTO #DispatachD VALUES(6,1002,10016,9,1,800)    
INSERT INTO #DispatachD VALUES(7,1002,10017,9,1,600)    

172611-image.png

Note :

I am retrieving data from database on Date between 08/02/2022 to 08/02/2022 ,
Column calculation detail below

Opening_QTY/Opening_Weight from database before 08/02/2022,

IN_QTY/IN_Weight from #Bigbaleprd table ,from Date between 08/02/2022 to 08/02/2022 ,

Out_Qty/Out_Weight from #DispatchM and #DispatachD table , from Date between 08/02/2022 to 08/02/2022 ,

Closing_Qty (Opening_QTY+IN_QTY-Out_QTY) from Date between 08/02/2022 to 08/02/2022 ,

Closing_Weight (Opening_Weight + IN_Weight - OutWeight) from Date between 08/02/2022 to 08/02/2022 ,

Developer technologies Transact-SQL
SQL Server Other
0 comments No comments
{count} votes

4 answers

Sort by: Most helpful
  1. LiHong-MSFT 10,056 Reputation points
    2022-02-10T07:44:11.08+00:00

    Hi @Analyst_SQL
    Please check this:

    ;WITH CTE1 AS  
    (SELECT I.CodeItem  ,SUM(prdQTY)AS Opening_Qty,SUM(Bweight)AS Opening_Weight   
     FROM #ItemMasterFile I LEFT JOIN #Bigbaleprd B ON I.CodeItem=B.CodeItem  
     WHERE Entrydate<'08/02/2022'  
     GROUP BY I.CodeItem,Descriptionitem  
    ),CTE2 AS  
    (SELECT I.CodeItem ,SUM(prdQTY)AS In_Qty,SUM(Bweight)AS In_Weight   
     FROM #ItemMasterFile I LEFT JOIN #Bigbaleprd B ON I.CodeItem=B.CodeItem  
     WHERE Entrydate BETWEEN '08/02/2022'AND '08/02/2022'  
     GROUP BY I.CodeItem,Descriptionitem  
    ),CTE3 AS  
    (SELECT D.CodeItem,SUM(prdQTY)AS Out_Qty,SUM(Bweight)AS Out_Weight   
     FROM #DispatchM M LEFT JOIN #DispatachD D ON M.DID=D.DID  
                       LEFT JOIN #ItemMasterFile I ON I.CodeItem= D.Codeitem  
     WHERE Entrydate BETWEEN '08/02/2022'AND '08/02/2022'  
     GROUP BY D.CodeItem,Descriptionitem  
    )  
    SELECT UPPER(I.Descriptionitem) AS Item,ISNULL(Opening_Qty,0)AS Opening_Qty,ISNULL(Opening_Weight,0)AS Opening_Weight,  
           ISNULL(In_Qty,0)AS In_Qty,ISNULL(In_Weight,0)AS In_Weight,ISNULL(Out_Qty,0)AS Out_Qty,ISNULL(Out_Weight,0)AS Out_Weight,  
           ISNULL(Opening_QTY,0)+ISNULL(IN_QTY,0)-ISNULL(Out_QTY,0) AS Closing_Qty,  
           ISNULL(Opening_Weight,0) + ISNULL(IN_Weight,0) - ISNULL(Out_Weight,0) AS Closing_Weight    
    FROM #ItemMasterFile I LEFT JOIN CTE1 C1 ON I.CodeItem =C1.CodeItem  
                           LEFT JOIN CTE2 C2 ON I.CodeItem =C2.CodeItem  
                           LEFT JOIN CTE3 C3 ON I.CodeItem =C3.CodeItem  
    

    Output:
    173048-image.png

    Best regards,
    LiHong


    If the answer is the right solution, please click "Accept Answer" and kindly upvote it. If you have extra questions about this answer, please click "Comment".
    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.


  2. Analyst_SQL 3,576 Reputation points
    2022-02-11T08:09:20.81+00:00

    Hi @LiHong-MSFT

    Please Check below, that Item A Opening and closing Qty must be 1 not 2,you may check result with current data below.

     CREATE TABLE #ItemMasterFile(CodeItem INT,Descriptionitem VARCHAR(50))    
             
     CREATE TABLE #Bigbaleprd(BID INT,CodeItem INT,prdQTY INT,Bweight int,Entrydate DATETIME)    
             
     CREATE TABLE #DispatchM(DID INT, Entrydate DATETIME)    
     CREATE TABLE #DispatachD(ID INT,DID int,BID int,Codeitem int,prdQTY int,Bweight int,)    
                
     INSERT INTO #ItemMasterFile VALUES(1,'A')    
     INSERT INTO #ItemMasterFile VALUES(2,'B')    
     INSERT INTO #ItemMasterFile VALUES(3,'C')    
     INSERT INTO #ItemMasterFile VALUES(4,'D')    
     INSERT INTO #ItemMasterFile VALUES(5,'e')    
     INSERT INTO #ItemMasterFile VALUES(6,'f')    
     INSERT INTO #ItemMasterFile VALUES(7,'g')    
     INSERT INTO #ItemMasterFile VALUES(8,'h')    
     INSERT INTO #ItemMasterFile VALUES(9,'K')    
     INSERT INTO #ItemMasterFile VALUES(10,'L')    
     INSERT INTO #ItemMasterFile VALUES(11,'M')    
             
          
     INSERT INTO #Bigbaleprd VALUES(10006,3,1,400,'07-02-2022')    
     INSERT INTO #Bigbaleprd VALUES(10007,1,1,300,'07-02-2022')    
     INSERT INTO #Bigbaleprd VALUES(10008,3,1,200,'07-02-2022')    
     INSERT INTO #Bigbaleprd VALUES(10009,11,1,150,'07-02-2022')     
     INSERT INTO #Bigbaleprd VALUES(10010,8,1,100,'07-02-2022')     
     INSERT INTO #Bigbaleprd VALUES(10011,1,1,300,'08-02-2022')    
     INSERT INTO #Bigbaleprd VALUES(10012,3,1,200,'08-02-2022')    
     INSERT INTO #Bigbaleprd VALUES(10013,11,1,150,'08-02-2022')    
     INSERT INTO #Bigbaleprd VALUES(10014,10,1,250,'08-02-2022')    
     INSERT INTO #Bigbaleprd VALUES(10018,10,1,50,'08-02-2022')    
      
      INSERT INTO #Bigbaleprd VALUES(10018,9,1,800,'10-02-2022')    
     INSERT INTO #Bigbaleprd VALUES(10019,9,1,600,'10-02-2022')    
             
     INSERT INTO #DispatchM VALUES(1001,'08-02-2022')    
     INSERT INTO #DispatchM VALUES(1002,'09-02-2022')    
             
     INSERT INTO #DispatachD VALUES(1,1001,10011,1,1,300)    
     INSERT INTO #DispatachD VALUES(2,1001,10012,3,1,200)    
     INSERT INTO #DispatachD VALUES(3,1001,10013,11,1,150)    
     INSERT INTO #DispatachD VALUES(4,1001,10014,10,1,250)    
     INSERT INTO #DispatachD VALUES(5,1002,10015,8,1,900)    
     INSERT INTO #DispatachD VALUES(6,1002,10016,9,1,800)    
     INSERT INTO #DispatachD VALUES(7,1002,10017,9,1,600)    
    ;WITH CTE1 AS  
     (SELECT I.CodeItem  ,SUM(prdQTY)AS Opening_Qty,SUM(Bweight)AS Opening_Weight   
      FROM #ItemMasterFile I LEFT JOIN #Bigbaleprd B ON I.CodeItem=B.CodeItem   WHERE Entrydate<'10/02/2022'   GROUP BY I.CodeItem,Descriptionitem  
     ),CTE2 AS  
     (SELECT I.CodeItem ,SUM(prdQTY)AS In_Qty,SUM(Bweight)AS In_Weight   
      FROM #ItemMasterFile I LEFT JOIN #Bigbaleprd B ON I.CodeItem=B.CodeItem  
      WHERE Entrydate BETWEEN '10/02/2022'AND '10/02/2022'   GROUP BY I.CodeItem,Descriptionitem  
      
     ),CTE3 AS  
     (SELECT D.CodeItem,SUM(prdQTY)AS Out_Qty,SUM(Bweight)AS Out_Weight   
      FROM #DispatchM M LEFT JOIN #DispatachD D ON M.DID=D.DID  LEFT JOIN #ItemMasterFile I ON I.CodeItem= D.Codeitem  
       WHERE Entrydate BETWEEN '10/02/2022'AND '10/02/2022'   GROUP BY D.CodeItem,Descriptionitem)  
     SELECT UPPER(I.Descriptionitem) AS Item,ISNULL(Opening_Qty,0)AS Opening_Qty,ISNULL(Opening_Weight,0)AS Opening_Weight,  
            ISNULL(In_Qty,0)AS In_Qty,ISNULL(In_Weight,0)AS In_Weight,ISNULL(Out_Qty,0)AS Out_Qty,ISNULL(Out_Weight,0)AS Out_Weight,  
            ISNULL(Opening_QTY,0)+ISNULL(IN_QTY,0)-ISNULL(Out_QTY,0) AS Closing_Qty,  
            ISNULL(Opening_Weight,0) + ISNULL(IN_Weight,0) - ISNULL(Out_Weight,0) AS Closing_Weight    
     FROM #ItemMasterFile I LEFT JOIN CTE1 C1 ON I.CodeItem =C1.CodeItem  LEFT JOIN CTE2 C2 ON I.CodeItem =C2.CodeItem  LEFT JOIN CTE3 C3 ON I.CodeItem =C3.CodeItem  
                             
                             
    

  3. LiHong-MSFT 10,056 Reputation points
    2022-02-15T08:50:09.757+00:00

    Hi @Analyst_SQL
    Please check this:

      GO  
      DECLARE @retrieve_date DATE ='10-02-2022';  
     ;WITH CTE1 AS  
     (SELECT I.CodeItem,ISNULL(SUM(B.prdQTY),0)-ISNULL(SUM(D.prdQTY),0)AS Opening_Qty, ISNULL(SUM(B.Bweight),0)-ISNULL(SUM(D.Bweight),0)AS Opening_Weight   
      FROM #ItemMasterFile I LEFT JOIN #Bigbaleprd B ON I.CodeItem=B.CodeItem  
                             LEFT JOIN #DispatachD D ON I.CodeItem=D.CodeItem AND B.BID=D.BID  
    						 LEFT JOIN #DispatchM M ON  M.DID =D.DID AND B.Entrydate =M.Entrydate  
      WHERE B.Entrydate<@retrieve_date  
      GROUP BY I.CodeItem,Descriptionitem  
     ),CTE2 AS  
     (SELECT I.CodeItem ,SUM(prdQTY)AS In_Qty,SUM(Bweight)AS In_Weight   
      FROM #ItemMasterFile I LEFT JOIN #Bigbaleprd B ON I.CodeItem=B.CodeItem  
      WHERE Entrydate BETWEEN @retrieve_date AND @retrieve_date  
      GROUP BY I.CodeItem,Descriptionitem  
     ),CTE3 AS  
     (SELECT D.CodeItem,SUM(prdQTY)AS Out_Qty,SUM(Bweight)AS Out_Weight   
      FROM #DispatchM M LEFT JOIN #DispatachD D ON M.DID=D.DID  
                        LEFT JOIN #ItemMasterFile I ON I.CodeItem= D.Codeitem  
      WHERE Entrydate BETWEEN @retrieve_date AND @retrieve_date  
      GROUP BY D.CodeItem,Descriptionitem  
     )  
     SELECT UPPER(I.Descriptionitem) AS Item,ISNULL(Opening_Qty,0)AS Opening_Qty,ISNULL(Opening_Weight,0)AS Opening_Weight,  
            ISNULL(In_Qty,0)AS In_Qty,ISNULL(In_Weight,0)AS In_Weight,ISNULL(Out_Qty,0)AS Out_Qty,ISNULL(Out_Weight,0)AS Out_Weight,  
            ISNULL(Opening_QTY,0)+ISNULL(IN_QTY,0)-ISNULL(Out_QTY,0) AS Closing_Qty,  
            ISNULL(Opening_Weight,0) + ISNULL(IN_Weight,0) - ISNULL(Out_Weight,0) AS Closing_Weight    
     FROM #ItemMasterFile I LEFT JOIN CTE1 C1 ON I.CodeItem =C1.CodeItem  
                            LEFT JOIN CTE2 C2 ON I.CodeItem =C2.CodeItem  
                            LEFT JOIN CTE3 C3 ON I.CodeItem =C3.CodeItem  
    

    Best regards,
    LiHong


  4. LiHong-MSFT 10,056 Reputation points
    2022-02-16T07:28:31.297+00:00

    Hi @Analyst_SQL
    Try this:

      DECLARE @retrieve_date_1 DATE ='09-02-2022';  
      DECLARE @retrieve_date_2 DATE ='10-02-2022';  
     ;WITH CTE1 AS  
     (SELECT I.CodeItem,ISNULL(SUM(B.prdQTY),0)-ISNULL(SUM(D.prdQTY),0)AS Opening_Qty,  
             ISNULL(SUM(B.Bweight),0)-ISNULL(SUM(D.Bweight),0)AS Opening_Weight   
      FROM #ItemMasterFile I LEFT JOIN #Bigbaleprd B ON I.CodeItem=B.CodeItem  
                             LEFT JOIN #DispatachD D ON I.CodeItem=D.CodeItem AND B.BID=D.BID  
    						 LEFT JOIN #DispatchM M ON  M.DID =D.DID AND B.Entrydate =M.Entrydate  
      WHERE B.Entrydate<@retrieve_date_1  
      GROUP BY I.CodeItem,Descriptionitem  
     ),CTE2 AS  
     (SELECT I.CodeItem ,SUM(prdQTY)AS In_Qty,SUM(Bweight)AS In_Weight   
      FROM #ItemMasterFile I LEFT JOIN #Bigbaleprd B ON I.CodeItem=B.CodeItem  
      WHERE Entrydate BETWEEN @retrieve_date_1 AND @retrieve_date_2  
      GROUP BY I.CodeItem,Descriptionitem  
     ),CTE3 AS  
     (SELECT D.CodeItem,SUM(prdQTY)AS Out_Qty,SUM(Bweight)AS Out_Weight   
      FROM #DispatchM M LEFT JOIN #DispatachD D ON M.DID=D.DID  
                        LEFT JOIN #ItemMasterFile I ON I.CodeItem= D.Codeitem  
      WHERE Entrydate BETWEEN @retrieve_date_1 AND @retrieve_date_2  
      GROUP BY D.CodeItem,Descriptionitem  
     )  
     SELECT UPPER(I.Descriptionitem) AS Item,ISNULL(Opening_Qty,0)AS Opening_Qty,ISNULL(Opening_Weight,0)AS Opening_Weight,  
            ISNULL(In_Qty,0)AS In_Qty,ISNULL(In_Weight,0)AS In_Weight,ISNULL(Out_Qty,0)AS Out_Qty,ISNULL(Out_Weight,0)AS Out_Weight,  
            ISNULL(Opening_QTY,0)+ISNULL(IN_QTY,0)-ISNULL(Out_QTY,0) AS Closing_Qty,  
            ISNULL(Opening_Weight,0) + ISNULL(IN_Weight,0) - ISNULL(Out_Weight,0) AS Closing_Weight    
     FROM #ItemMasterFile I LEFT JOIN CTE1 C1 ON I.CodeItem =C1.CodeItem  
                            LEFT JOIN CTE2 C2 ON I.CodeItem =C2.CodeItem  
                            LEFT JOIN CTE3 C3 ON I.CodeItem =C3.CodeItem  
    

    Best regards,
    LiHong

    0 comments No comments

Your answer

Answers can be marked as Accepted Answers by the question author, which helps users to know the answer solved the author's problem.