MySQL帮助:如何查找客户的所有订单,直到金额(价格)

MySQL帮助:如何查找客户的所有订单,直到金额(价格),mysql,Mysql,例如: select orderid from `orders` where sum(price) <= 150 and status=unpaid and ownerid=110786 正如你们所见,总价格不低于50美元,但75美元。请帮忙。。。谢谢 还有Mods请注意stackoverflow是一项很棒的服务,但是格式化评论是一项非常困难的工作。请设法使它容易些。我尝试了太多次,以一种易于阅读的方式来编排评论,但所有的努力都失败了,所以现在我在回答我的问题区域写评论 然而,这个问题到

例如:

select orderid
from `orders`
where sum(price) <= 150 and status=unpaid and ownerid=110786
正如你们所见,总价格不低于50美元,但75美元。请帮忙。。。谢谢

还有Mods请注意stackoverflow是一项很棒的服务,但是格式化评论是一项非常困难的工作。请设法使它容易些。我尝试了太多次,以一种易于阅读的方式来编排评论,但所有的努力都失败了,所以现在我在回答我的问题区域写评论

然而,这个问题到目前为止还没有得到正确的回答。虽然好人都在尽力帮助我。我再次发布了这个问题,因为太长时间没有人提出可行的解决方案,但新问题也没有得到有效的解决方案:


请大家帮我个忙。我想做的是一种一般的事情,所有的手推车都是这样或那样做的。如果客户有10份订单,每份10美元,总计100美元,但他只有50美元。他怎么能核实用这笔钱可以支付多少订单?这就是我需要查找/编码的全部内容。

不清楚您是否遇到错误,但请尝试以下操作:

select orderid
from `orders`
where status=unpaid and ownerid=110786
group by orderid
having sum(price) <= 150

我想你可以用MySQL变量来完成这项工作。。。使用一个作为运行总数,并应用HAVING子句将其截断

select
      o.orderid,
      o.price,
      @RunningTotal := @RunningTotal + o.price as TotalSoFar
   from
      orders o,
      ( select @RunningTotal := 0 ) sqlvars
   where
          o.ownerid = 110786
      and o.status = unpaid
   having 
      TotalSoFar <= 150

@RunningTotal变量只是不断地被动态添加到中,并被固定在查询结果的最后一列中,但在限定WHERE子句的下一条记录中仍然只是一个变量。因此,即使您的订单总数高达200、300,不管怎样,最终HAVING子句将通过使用TotalSoFar列作为基础删除所有其他行来删除这些订单…

如果未付款是一个字符串,您可能需要报价它给了您什么?错误?错误的数据集?非常感谢您的帮助,但它既没有给出任何错误,也没有显示任何内容。只有一个空白的orderid字段。请告知。当您尝试从ownerid=110786且状态=未付款的订单中选择*时,您得到了什么?您写入了状态而不是paymentstatus,因此结果为空,但当我更正后,我运行了:选择orderid、价格、,paymentstatus='Payment'和ownerid=110786的订单中的designname按订单ID分组拥有sumprice请更新您的原始帖子-在评论中很难阅读此内容上述两个答案不符合要求:请帮助。@HaiderAbbas,怎么不起作用。。。SQL崩溃?不恰当的结果?你能展示一些你所拥有的与结果对比的样本数据吗?不工作就像说我需要一块石头,而不描述我需要什么样的石头。
select
      o.orderid,
      o.price,
      @RunningTotal := @RunningTotal + o.price as TotalSoFar
   from
      orders o,
      ( select @RunningTotal := 0 ) sqlvars
   where
          o.ownerid = 110786
      and o.status = unpaid
   having 
      TotalSoFar <= 150