【发布时间】:2014-01-26 04:23:45
【问题描述】:
我的查询中的问题,尤其是在这篇文章中:
@a:= concat(@a, ',', B.call_account_id) AS paid_account_id
这是整个查询:
SELECT operator_id, paid_account_ids, SUM( goods_count * price ) AS sales_volume, count(*) AS sales_cnt
FROM (
SELECT B.operator_id, @a:= concat(@a, ',', B.call_account_id) AS paid_account_ids, B.call_time, A.goods_count, A.price, UNIX_TIMESTAMP( A.completion_date ) AS paid_ts
FROM call_module_data B
INNER JOIN ak_accounts A ON ( A.account_id = B.call_account_id AND A.goods_count >=1 )
WHERE B.call_status IN (1,7) AND A.status_id = 5
AND operator_id IN ( $op_ids )
$and_str_accounts
GROUP BY A.account_id
HAVING call_time < (paid_ts + $time_shift)
) AS T
GROUP BY operator_id";
所以上面提到的表达式应该产生连接的帐户 ID 字符串(例如 3341,4355,4433...)。但是我得到了 NULL 而不是所需的字符串。 请帮忙解决。提前致谢。
【问题讨论】:
-
你在最后有一个引号和一个分号,这就是它不起作用的原因。
标签: mysql sql select group-by group-concat