Mysql 如何分离记录以获取金额
我的存货总共有160件 如何获取前100个数量总数和后60个数量总数 该表按日期和库存ID排序Mysql 如何分离记录以获取金额,mysql,stock,Mysql,Stock,我的存货总共有160件 如何获取前100个数量总数和后60个数量总数 该表按日期和库存ID排序 tblStock +----------+------------+----------+----------+------------+ + Stock ID + Product ID + Quantity + Amount + Date + +----------+------------+----------+----------+------------+ + 1
tblStock
+----------+------------+----------+----------+------------+
+ Stock ID + Product ID + Quantity + Amount + Date +
+----------+------------+----------+----------+------------+
+ 1 + 1001 + 50 + 10.00 + 2014-11-10 +
+----------+------------+----------+----------+------------+
+ 2 + 1001 + 70 + 11.00 + 2014-11-11 +
+----------+------------+----------+----------+------------+
+ 3 + 1001 + 30 + 9.90 + 2014-11-12 +
+----------+------------+----------+----------+------------+
+ 4 + 1001 + 10 + 10.20 + 2014-11-13 +
+----------+------------+----------+----------+------------+
我需要下面的两个结果。谢谢
Result A (first 100 quantity)
+------------+----------+--------------+
+ Product ID + Quantity + Total Amount +
+------------+----------+--------------+
+ 1001 + 100 + 1050.00 +
+------------+----------+--------------+
Result B (last 60 quantity)
+------------+----------+--------------+
+ Product ID + Quantity + Total Amount +
+------------+----------+--------------+
+ 1001 + 60 + 619.00 +
+------------+----------+--------------+
前100名
选择产品ID、sumQuantity作为数量、sumAmount作为TotalAmount
根据tblstock.Stock ID从tblstock订单中选择*
ASC限额100 t1组(按日期、产品ID)
过去60年
选择产品ID、sumQuantity作为数量、sumAmount作为总计
按tblstock.Stock ID从tblstock订单中选择*的金额
按日期、产品ID列出的描述限制60 t1组
试试这个:
结果A:
结果B:
您可以使用JOIN而不是IN
结果A:
结果B:
您是否希望结果为100-19.90和60-20.20??发布样本结果我希望结果a=50 x 10+50 x 11,结果B=20 x 10+30 x 9.90+10 x 10.20,结果a是前100个数量,结果B是最后60个数量。谢谢,这不是我想要的结果,我的结果要求没有记录限制,是库存数量限制。ThanksI收到了这个错误1235-这个版本的MySQL还不支持“LIMIT&IN/ALL/ANY/SOME子查询”。谢谢,我已经更新了查询。请试一试。谢谢。嗨,我已经测试过了,但是结果总输出量是41.09。谢谢
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)
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)
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
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