2
주어진 부서의 각 영업 사원에 대한 지난 7 일 동안의 총 판매액과 판매액이있는 보고서를 작성해야합니다. 나는 각 판매에 대해 영업 사원의 날짜, 금액 및 ID를 나열한 테이블과 영업 사원을 부서에 매핑하는 테이블을 가지고 있습니다.SQL - 총계와 주간 합계의 2 개의 부속 조회 합치기
주간 및 총합 모두를 단일 쿼리에 표시하려면 어떻게합니까?
각각에 대한 질의는 다음과 같습니다
SELECT user_id,sum(amount) AS total_amount
FROM sales
LEFT JOIN users
ON sales.user_id = users.id
WHERE users.department = 1
GROUP BY user_id
및
SELECT user_id,sum(amount) AS total_amount
FROM sales
LEFT JOIN users
ON sales.user_id = users.id
WHERE users.department = 1 AND date > (NOW()-INTERVAL 1 WEEK)
GROUP BY user_id
나는이 테이블 중 하나에 대한 뷰를 생성 할 수 있지만, 나는 단지 거기 (특정 부서에 대한 기록이 필요하기 때문에 많은 경우), 모든 부서의 결과를 생성하는보기를 사용하면 비효율적 인 것처럼 보입니다.
이SELECT user_id
, sum(amount) as total
, sum(case when date > (NOW()-INTERVAL 1 WEEK) then amount end) as weekly
FROM sales
LEFT JOIN
users
ON sales.user_id = users.id
WHERE users.department = 1
GROUP BY
user_id
이 두 번째 sum()
에서 오래된 행을 필터링 할 case
을 사용
고마워요! 트릭을! –