我在数据库中有两个表。其中一个帐户列表包含各种数据点(fix_cost_summary)。第二个表包含所有账户和与交易相关的佣金(comm_table)完成的所有交易。我正在尝试运行一个查询来输出fix_cost_summary中的所有列以及来自comm_table的帐户总和。
我的子查询导致“未知列”错误。如果我的代码中有错误,请告诉我。
SELECT
fix_cost_summary.*,
comm_table.Short_Name,
(SELECT SUM(Commissions)
FROM
comm_table
GROUP BY
comm_table.Short_Name)
FROM
fix_cost_summary,
comm_table
WHERE
fix_cost_summary.Short_Name = comm_table.Short_name
答案 0 :(得分:2)
假设Short_Name
中的fix_cost_summary
是唯一的,MySQL将允许您简单地连接表,然后对该列进行分组:
SELECT fix_cost_summary.*, SUM(comm_table.Commissions)
FROM fix_cost_summary JOIN comm_table USING (Short_Name)
GROUP BY Short_Name
答案 1 :(得分:0)
内联子查询将返回多于1行。解决此问题的一种方法是将其更改为派生表:
SELECT
f.*,
c.Sum_Commisions
FROM
fix_cost_summary AS f
JOIN
( SELECT Short_Name,
SUM(Commissions) AS Sum_Commisions
FROM
comm_table
GROUP BY
Short_Name
) AS c
ON c.Short_Name = f.Short_Name ;