php - MySQL 选择总和的记录

标签 php mysql sum

我正在使用 MySQL 和 PHP。我有一个包含列 id 和数量的表。我想检索最后一个求和数量的行的 id,因为它的总和达到了 40。更具体。我的数据库中有 3 行。一个数量为 10,一个数量为 30,一个数量为 20。因此,如果我将数量相加得到结果 40,我会将前两个巫术平均值相加:10 + 30 = 40。这样,最后一个 Id 就是用于将数字 40 求和为 2。我只想知道用于完成 40 求和的最后一行的 id。

如果有人询问,我会提供更多详细信息。谢谢!!

<小时/>

让我这样说: 我手里确实有6个产品。第一个在 10 号到达我的手中,接下来的 3 个在 11 号到达,最后 2 个在 12 号到达。

现在,我想出售库存中的 3 种产品。并想按照它们来的顺序出售它们。因此,对于想要 3 种产品的客户,我会向他出售 10 号产品中的产品和 11 号产品中的 2 种产品。

对于下一个想要 2 种产品的客户,我会向他出售 11 日最后订单 3 种产品中剩余的一种产品,以及 12 日的另一种产品。

问题是我如何知道我销售的每种产品的价格?我想,如果我能找出哪些行汇总了每个请求的数量,我就会知道每次要交付订单时从哪里开始计算总和。因此,首先我会查看哪些行总计了 3 个产品并保留条目 ID。对于下一个订单,我将从该 ID 开始计数并求和,直到对 2 个产品的第二个订单求和,依此类推。我想通过这种方式,我可以跟踪每种产品的进货价格。所以从12号开始我就不会以最初的价格补足的价格来销售产品了。

希望你能理解。我只需要知道我的任何产品的价格,这样我就知道第一个产品会有一个价格,但随着产品价格的上涨,我也必须提高我的价格......所以最后的产品必须以更高的价格。只有跟踪这一点,我才能实现这一目标...

非常感谢。

<小时/>

没人?或者,甚至更简单:MySQL 应该选择 SUM(quantity) 所需的行,使其大于或等于 40。然后获取参与求和过程的最后一行的 id。

最佳答案

第三列包含运行总计。然后,您可以简单地返回运行总计 <= 您的目标值的最后一行。

所以你的表格应该是这样的:

ID    Quantity    RunningTotal
1           10              10
2           30              40
3           20              60

注意:如果删除表中的一行,请记住更新所有后续行RunningTotal -= DeletedRow.Quantity!

关于php - MySQL 选择总和的记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/438062/

相关文章:

mysql - 当没有主键时从mysql表中提取额外记录

java - 关于汇总列表中的值的建议

MySQL复杂选择与时间聚合

php - 正则表达式检查整个字符串是否是单个重复字符 - 通过 PHP

PHP session 过期过早

mysql - 使用子查询通过 JOIN 选择行

mysql - Mysql 访问被拒绝(缺少 MySQL57)

c# - 使用 Linq to SQL 生成销售报告

php - 是否可以使用 php 从本地存储中检索所有值?

php - 在 CodeIgniter 中扩展 Controller 类