作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有以下三个表。为了更好地理解,此处进行了简化。
有命令,就有作家。每个作者都被分配了一个特定的writer_alias。作家为他完成的每个订单获得报酬,并且该订单也获得批准(当 order_status 为 1 时)。但仅限于已批准订单总金额大于 200 美元时。
我需要计算 ACID_COST 或 IMMEDIATE_PAYABLE,这将等于任何总和大于 200 美元且该特定订单的 payment_status 为 0 的作家的成本总和。我不确定我是否能够在这里解释。这是我目前所能达到的,但它只计算所有已批准订单金额的总和。
"SELECT SUM(tblpayment.amount) AS PAYABLES FROM tblpayment, tblorder WHERE tblorder.order_alias=tblpayment.order_alias AND tblorder.order_status=1 AND tblpayment.payment_status=0"
在这种情况下,此处所需的答案可能为 0,因为 writer_alias(16) 批准的金额为 30,小于 200,而 writer_alias(15) 批准的金额为 10,又小于 200。
任何帮助将不胜感激。
编辑:更正后的表格图片在这里。
最佳答案
不能在 WHERE
子句中使用聚合函数的结果。相反,您应该使用 HAVING
,如下所示:
SELECT tblorder.writer_alias, SUM(tblpayment.amount) AS PAYABLES
FROM tblpayment, tblorder
WHERE tblorder.order_alias = tblpayment.order_alias
AND tblorder.order_status = 1
AND tblpayment.payment_status = 0
GROUP BY tblorder.writer_alias
HAVING SUM(tblpayment.amout) > 200
关于php - MYSQL SUM() 与 IF,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19447656/
我是一名优秀的程序员,十分优秀!