0

これが私が扱っているデータベースのスキーマです - [編集済み]

2 つの異なる結果セットに対して 2 つの異なるクエリを作成しようとしています -

  1. 売上高が最も多い営業担当者
  2. グループ化された最高の売上を持つ営業担当者managerId

最初のクエリはうまくいきました。これは私が思いついたものです:

SELECT
    SUM(`products`.`cost`) AS `Sale`
    , `employees`.`firstName`
FROM
    `d2dpro`.`sales_reps`
    , `d2dpro`.`products`
    INNER JOIN `d2dpro`.`employees` 
        ON (`sales_reps`.`employeeId` = `employees`.`employeeId`)
    INNER JOIN `d2dpro`.`sold_products` 
        ON (`products`.`productId` = `sold_products`.`productId`)
    INNER JOIN `d2dpro`.`sales` 
        ON (`sold_products`.`saleId` = `sales`.`saleId`) AND (`sales`.`salesCampId` = `sales_reps`.`saleCampId`)
GROUP BY `employees`.`firstName`;

このクエリでは、次のエラーが発生します。 Error Code: 1054 Unknown column 'sales_reps.saleCampId' in 'on clause'

このクエリについて何か助けはありますか? そして2枚目も?

4

1 に答える 1

0

表 employees、sold_products、および sales の INNER JOIN で CROSS JOIN された 1 つの表 (sales_reps) を使用しています。その JOIN で sales_reps を参照できるようにするには、それを内部結合として含める必要があります (FROM 句は次のようになります)。

FROM `d2dpro`.`products`
    INNER JOIN `d2dpro`.`employees` 
        ON (`sales_reps`.`employeeId` = `employees`.`employeeId`)
    INNER JOIN `d2dpro`.`sold_products` 
        ON (`products`.`productId` = `sold_products`.`productId`)
    INNER JOIN `d2dpro`.`sales` 
        ON (`sold_products`.`saleId` = `sales`.`saleId`)
    INNER JOIN `d2dpro`.`sales_reps` 
        ON (`sales`.`salesCampId` = `sales_reps`.`saleCampId`)
于 2012-10-16T13:25:08.737 に答える