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'

这个查询有什么帮助吗?还有第二个?

4

1 回答 1

0

您正在使用一个表 (sales_reps),它与表 employees、sold_products 和 sales 的 INNER JOIN 交叉连接。为了能够在该 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 回答