0

データベースに 2 つのテーブルがあります。1 つは、アカウントごとのさまざまなデータポイントを含むアカウントのリストです (fix_cost_summary)。2 番目のテーブルには、すべてのアカウントによって行われたすべての取引と、取引に関連付けられた手数料 (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 に答える