MySQL选择字符串

时间:2014-08-20 13:52:13

标签: mysql

当返回这段代码时,我没有像我想的那样得到12行并且为什么,我做错了什么,当没有添加百分比时有12行显示。

SELECT invoice_due_date, invoice_total,SUM(invoice_total)    
       * .10 / invoice_total,SUM(invoice_total)    
       * .20 / invoice_total
FROM invoices
# ROWS: 12
WHERE invoice_total >= 500 OR invoice_total <= 10000
ORDER BY invoice_due_date DESC

1 个答案:

答案 0 :(得分:1)

您只获得一行,因为您使用的是没有group by的聚合函数。因此,它汇总了invoice_total列的所有行。

我想,你想要做的是:

SELECT 
invoice_due_date, 
invoice_total, 
sum_invoice_total * .10 / invoice_total, 
sum_invoice_total * .20 / invoice_total
FROM invoices
CROSS JOIN (SELECT SUM(invoice_total) FROM invoices WHERE invoice_total >= 500 OR invoice_total <= 10000) sum_invoice_total
WHERE invoice_total >= 500 OR invoice_total <= 10000
ORDER BY invoice_due_date DESC