Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/63.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 MySQL值被大幅膨胀_Php_Mysql_Sql_Sum - Fatal编程技术网

Php MySQL值被大幅膨胀

Php MySQL值被大幅膨胀,php,mysql,sql,sum,Php,Mysql,Sql,Sum,我有一个查询,旨在获取当月每天的查询值 我遇到的问题是数字太大了 我的问题是: $M = date('m'); $Y = date('Y'); $SQL = "SELECT DATE_FORMAT(enquiries.dateCreated, '%D') AS name, SUM((SELECT SUM(PE.quantity * PE.net) FROM parts_enquiries PE WHERE PE.enquiryId = enquiries.id)) AS

我有一个查询,旨在获取当月每天的查询值

我遇到的问题是数字太大了

我的问题是:

$M = date('m');
$Y = date('Y');
$SQL = "SELECT DATE_FORMAT(enquiries.dateCreated, '%D') AS name,
            SUM((SELECT SUM(PE.quantity * PE.net) FROM parts_enquiries PE WHERE PE.enquiryId = enquiries.id)) AS y
            FROM enquiries
            WHERE MONTH(enquiries.dateCreated) = $M
            AND YEAR(enquiries.dateCreated) = $Y
            AND enquiries.archived = 0
            GROUP BY DAY(enquiries.dateCreated)";
每天可以有0个或多个查询,每个查询可以有1个或多个部分


有人知道我的查询出了什么问题吗?

我不知道这是否会有什么不同,但请尝试使用显式连接、无子查询、无隐式连接来运行此操作:

SELECT DATE_FORMAT(enquiries.dateCreated, '%D') AS name,
       SUM(PE.quantity * PE.net) AS y
FROM enquiries JOIN
     entities
     ON enquiries.entityId = entities.id JOIN
     parts_enquiries PE
     ON PE.enquiryId = enquiries.id
WHERE MONTH(enquiries.dateCreated) = $M AND
      YEAR(enquiries.dateCreated) = $Y AND
      enquiries.archived = 0
       $filter
GROUP BY DAY(enquiries.dateCreated);
一种可能性是将
$filter
设置为包含
的内容。更安全的方法是:

WHERE MONTH(enquiries.dateCreated) = $M AND
      YEAR(enquiries.dateCreated) = $Y AND
      enquiries.archived = 0
      (1=1 AND $filter)

$filter
看起来像什么?@GordonLinoff我已经删除了它,因为它是空的,我简化了查询(删除的实体)/您当前的查询不太可能使用任何包含
dateCreated
的索引(由于使用了给定的函数)。最好使用
dateColumn>=$startOfCurrentMonth和dateColumn<$startOfNextMonth
,因为(它涵盖了SQL Server,但概念仍然适用)。我不确定我是否理解您的意思。否则,我将如何将当月的查询与$M进行比较?遗憾的是,结果不完全相同:(.无论如何,谢谢。@imperium2335…请使用示例数据和所需结果编辑您的问题。此外,如果设置了,
$filter
,请添加它是什么。