Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/230.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 分组练习是行不通的_Php_Mysql - Fatal编程技术网

Php 分组练习是行不通的

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

我的HAVE子句有问题这是我的错误:

having子句中的未知列tbl_quotes.tax

我的代码是:

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 ;