2011-04-27 2 views
0

내가 만든이 쿼리가 있습니다. 직원과 구매자가 1 년 동안 35,000 개 이상의 레코드를 반환합니다. 쿼리를 직원 (이름)의 인스턴스 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

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 
+0

+1 거래 날짜를 * 및 * 반환 할 수 없으며, * 및 *는 각 직원마다 하나의 행이 있습니다. –

+0

물론 최대/최소/평균/... 거래 날짜 및 할인 금액을 얻을 수 있습니다. –