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.
For first 100
select
Product ID
, sum(Quantity) as Quantity, sum(Amount) asTotalAmount
from (SELECT * from tblstock order bytblStock
.Stock ID
ASC limit 100) t1 GROUP BYDate
,Product ID
For last 60
select
Product ID
, sum(Quantity) as Quantity, sum(Amount) asTotal Amount
from (SELECT * from tblstock order bytblStock
.Stock ID
DESC limit 60) t1 GROUP BYDate
,Product ID
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