How to separate a record to get the amount

后端 未结 2 1451
刺人心
刺人心 2021-02-11 09:50

I got total 160 Quantity in the Stock.

How to get first 100 quantity total amount and last 60 quantity total amount?

The table is sort by Date and Stock ID.

相关标签:
2条回答
  • 2021-02-11 10:28

    For first 100

    select Product ID, sum(Quantity) as Quantity, sum(Amount) as TotalAmount from (SELECT * from tblstock order by tblStock.Stock ID ASC limit 100) t1 GROUP BY Date,Product ID

    For last 60

    select Product ID, sum(Quantity) as Quantity, sum(Amount) as Total Amount from (SELECT * from tblstock order by tblStock.Stock ID DESC limit 60) t1 GROUP BY Date,Product ID

    0 讨论(0)
  • 2021-02-11 10:30

    Try this:

    Result A:

    SELECT A.ProductID AS 'Product ID', '100' AS 'Quantity', SUM(A.Amount) as 'Total Amount'
    FROM tblStock A
    WHERE StockID IN (SELECT B.StockID from tblStock B ORDER BY B.StockID ASC LIMIT 100)
    

    Result B:

    SELECT A.ProductID AS 'Product ID', '60' AS 'Quantity', SUM(A.Amount) as 'Total Amount'
    FROM tblStock A
    WHERE StockID IN (SELECT B.StockID from tblStock B ORDER BY B.StockID DESC LIMIT 60)
    

    Instead of using IN, you can use JOIN.

    Result A:

    SELECT A.ProductID AS 'Product ID', '100' AS 'Quantity', SUM(A.Amount) AS 'Total Amount'
    FROM tblStock AS A
    INNER JOIN
     (SELECT StockID from tblStock ORDER BY StockID ASC LIMIT 100) AS B
    ON A.StockID = B.StockID
    

    Result B:

    SELECT A.ProductID AS 'Product ID', '60' AS 'Quantity', SUM(A.Amount) AS 'Total Amount'
    FROM tblStock AS A
    INNER JOIN
     (SELECT StockID from tblStock ORDER BY StockID DESC LIMIT 60) AS B
    ON A.StockID = B.StockID
    
    0 讨论(0)
提交回复
热议问题