Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/68.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
Mysql count()获取错误的结果_Mysql - Fatal编程技术网

Mysql count()获取错误的结果

Mysql count()获取错误的结果,mysql,Mysql,我正在尝试查找本周的记录数。 我目前的查询是: SELECT Week(Str_to_date(products_options_values, '%m-%d-%Y'), 1) AS order_week, Year(Str_to_date(products_options_values, '%m-%d-%Y')) AS order_year, order_active, Count(op.sub_order_id) AS deliveries FROM

我正在尝试查找本周的记录数。 我目前的查询是:

SELECT Week(Str_to_date(products_options_values, '%m-%d-%Y'), 1) AS order_week,
       Year(Str_to_date(products_options_values, '%m-%d-%Y')) AS order_year,
       order_active,
       Count(op.sub_order_id) AS deliveries
FROM   orders_products_attributes opa
       LEFT JOIN orders_products op
              ON ( opa.orders_products_id = op.orders_products_id )
GROUP  BY order_week,
          order_year
HAVING order_week = '31'
       AND order_year >= '2013'
       AND order_active = 0
ORDER  BY order_week
它以2的形式获取交付,其中实际上有4条记录,如果在删除COUNT和GROUP BY之后运行相同的查询,它将正确显示所有4行。同样的问题也发生在其他几周,例如第34周有3条记录,但上面的查询将其取为4条。此外,另一件奇怪的事情是,在GROUPBY子句中,如果我删除order_week或order_year中的任何一个,查询将返回一个空结果集


知道我做错了什么吗?

试着把所有有条件的人都转移到哪里去。也可计数ID-计数ID的唯一值,而不是全部。如果您需要所有记录计数,只需使用计数*


一些示例数据会更好,因为order_week和order_year是别名,我不能将它们放在何处。所有子订单ID都是唯一的,但我也尝试了*并返回了相同的结果error@aoi好的,然后将order\u active=0条件移动到其中,主要问题实际上是有一个名为order\u week的实际列。。。不过,将订单移动到哪里也有帮助…谢谢
SELECT Week(Str_to_date(products_options_values, '%m-%d-%Y'), 1) AS order_week,
       Year(Str_to_date(products_options_values, '%m-%d-%Y')) AS order_year,
       order_active,
       Count(op.sub_order_id) AS deliveries
FROM   orders_products_attributes opa
       LEFT JOIN orders_products op
              ON ( opa.orders_products_id = op.orders_products_id )
WHERE order_week = '31'
       AND order_year >= '2013'
       AND order_active = 0

GROUP  BY order_week,
          order_year
ORDER  BY order_week