0

我在数据库中有两个表。一个有一个帐户列表,其中包含按帐户(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
4

2 回答 2

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
于 2013-05-16T18:13:58.707 回答
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 ;
于 2013-05-16T18:17:04.857 回答