不同的员工名称购买金额总和?

时间:2011-04-27 08:51:17

标签: sql-server-2008

我有我创建的这个查询。它为员工及其购买记录返回超过35000条记录,为期1年。我试图让查询只返回员工(名称)的1个实例和总购买金额而不是单个记录。这可能吗?

SELECT

distinct employee.employee_no,

sum(employee_purchase.purchase_amount) as 'Purchase Amount',

--employee.employee_no,

employee.employee_first_name,

employee.employee_last_name,

employee.home_store_no,

employee_purchase.transaction_date,

employee_purchase.employee_discount_amount


FROM

employee


INNER JOIN

employee_purchase ON employee.employee_no =

employee_purchase.employee_no



where

transaction_date between ('2010-06-30 00:00:00') and ('2011-04-26 00:00:00')


group by employee.employee_no, employee.employee_first_name, employee.employee_last_name,

employee.home_store_no,

employee_purchase.transaction_date,

employee_purchase.employee_discount_amount


order by 1 

1 个答案:

答案 0 :(得分:1)

摆脱您的DISTINCT,并删除交易数据。想一想:如果你想要总结所有交易,你也不能获得有关单笔交易的信息。

SELECT
  employee.employee_no,
  sum(employee_purchase.purchase_amount) as 'Purchase Amount',
  employee.employee_first_name,
  employee.employee_last_name,
  employee.home_store_no
FROM
  employee
INNER JOIN employee_purchase ON employee.employee_no = employee_purchase.employee_no
where
transaction_date between ('2010-06-30 00:00:00') and ('2011-04-26 00:00:00')
group by 
  employee.employee_no, employee.employee_first_name, employee.employee_last_name, employee.home_store_no
order by 1