Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/59.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 SQL-同时使用group by和details进行查询_Mysql_Sql - Fatal编程技术网

Mysql SQL-同时使用group by和details进行查询

Mysql SQL-同时使用group by和details进行查询,mysql,sql,Mysql,Sql,我有如下sql查询: SELECT sum(amount) AS sum, incomes_category_assigned_to_users.name AS category_name FROM incomes INNER JOIN incomes_category_assigned_to_users on incomes.income_category_assigned_to_user_id = incomes_category_assigned_to_u

我有如下sql查询:

SELECT sum(amount) AS sum, incomes_category_assigned_to_users.name AS category_name
        FROM incomes 
        INNER JOIN incomes_category_assigned_to_users on incomes.income_category_assigned_to_user_id = incomes_category_assigned_to_users.id 
        WHERE (incomes.user_id = :user_id AND date_of_income >= :first_date AND date_of_income <= :second_date)
        GROUP BY incomes.income_category_assigned_to_user_id 
        ORDER BY sum DESC;
选择总和(金额)作为总和,收入\u类别\u分配给\u用户。名称作为类别\u名称
收入
内部联接收入\u类别\u分配给收入上的用户。收入\u类别\u分配给用户\u id=收入\u类别\u分配给用户。id

其中(incomers.user_id=:user_id AND date_of_income>=:first_date AND date_of_of_incomeMySQL不支持数组。一种方法是将值放入字符串中:

SELECT SUM(amount) AS sum,
       GROUP_CONCAT(amount) as amounts,
       icau.name AS category_name
FROM incomes i JOIN
     incomes_category_assigned_to_users icau
     ON i.income_category_assigned_to_user_id = icau.id 
WHERE i.user_id = :user_id AND
      date_of_income >= :first_date AND
      date_of_income <= :second_date
GROUP BY icau.name
ORDER BY sum DESC;
选择总和(金额)作为总和,
集团成本(金额)作为金额,
icau.name作为类别名称
从我的收入中加入
收入\类别\分配给\用户\ icau
在i.income\u category\u上分配给用户\u id=icau.id
其中i.user\u id=:user\u id和
收入日期>=:首次收入日期和

收入的日期另一个选项可能是使用
和ROLLUP
来获取高级总和()。因此,您选择单独的行(而不是分组总和),然后使用
和ROLLUP
也将返回总和。然后您只需识别这些行(即如果incomes.name为null)并相应地输出它们。