Php 分组练习是行不通的
我的HAVE子句有问题这是我的错误: having子句中的未知列tbl_quotes.tax 我的代码是:Php 分组练习是行不通的,php,mysql,Php,Mysql,我的HAVE子句有问题这是我的错误: having子句中的未知列tbl_quotes.tax 我的代码是: SELECT tbl_quotes.docnumber AS docNumber, tbl_quotes.date AS date, Sum(tbl_quotesitems.price) * ( ( t
SELECT tbl_quotes.docnumber AS docNumber,
tbl_quotes.date AS date,
Sum(tbl_quotesitems.price) * ( ( tax + tax2 / 100 ) + 1 ) AS total,
( Sum(tbl_quotesitems.price) * ( ( tax + tax2 / 100 ) + 1 ) ) -
(SELECT Sum(tbl_payments.amount)
FROM tbl_payments
WHERE tbl_payments.quoteid = tbl_quotes.id
) AS amtOwing
FROM tbl_quotes
INNER JOIN tbl_quotesitems
ON tbl_quotesitems.quoteid = tbl_quotes.id
GROUP BY tbl_quotes.id
HAVING ( Sum(tbl_quotesitems.price) * ( ( ( tbl_quotes.tax + tbl_quotes.tax2 ) /
100 )
+
1 ) ) < (SELECT Sum(
tbl_payments.amount)
FROM tbl_payments
WHERE
tbl_payments.quoteid = tbl_quotes.id)
感谢使用联接进行可能的重写并避免代码和计算的某些重复: 假设:表tbl_quotes以id作为主键
我想这可能是我见过的最丑陋的问题。是tbl_payments.tax还是tbl_QuoteItems.tax?是的,好多了。谢谢:这是在文本编辑器中打开的zip存档吗;我建议您检查查询的代码格式。在此过程中,您可能也会发现错误。我还没有检查查询,但非常感谢您演示了正确的格式如何使代码可读!
SELECT q.docnumber AS docNumber,
q.date AS date,
qi.sum_price * ( ( q.tax + q.tax2 / 100 ) + 1 )
AS total,
qi.sum_price * ( ( q.tax + q.tax2 / 100 ) + 1 ) - p.sum_amount
AS amtOwing
FROM tbl_quotes AS q
INNER JOIN
( SELECT quoteid,
SUM(price) AS sum_price
FROM tbl_quotesitems
GROUP BY quoteid
) AS qi
ON qi.quoteid = q.id
INNER JOIN
( SELECT quoteid,
SUM(amount) AS sum_amount
FROM tbl_payments
GROUP BY quoteid
) AS p
ON p.quoteid = q.id
WHERE qi.sum_price * ( ( ( q.tax + q.tax2 ) / 100 ) + 1 )
< p.sum_amount ;