다음 시나리오가 있습니다. 세 테이블 (users, sales, sales_details) Sales to User는 1 대 1의 관계이고 sales_details에 대한 판매는 1 대 다수입니다. 나는 문제없이 모든 3 개의 테이블을 결합하여 각 사용자에 대한 모든 매출을 얻는 쿼리를 실행하고 있습니다. 쿼리는 내가 지금하고 싶은 것은 부질 될 것입니다 내 쿼리에 추가 필드를 추가 할 것입니다이선택 항목의 MySQL 하위 쿼리
SELECT s.month as month,u.name as name, s.year as year, s.date as date,sum(sd.qty) as qty,sum(sd.qty*sd.value) as value,s.id as id,sum(sd.stock) as stock,s.currency as currency,s.user as user
FROM sales as s
left join sales_details as sd on s.id = sd.Sales
inner join users as u on s.user = u.Id
group by s.Id
같이 보입니다. 원래 쿼리가 한달을 수행하면서
SELECT SUM(total) AS total_yearly
FROM (
SELECT sum(qty) as total
FROM sales
left join sales_details on sales.Id = sales_details.Sales
WHERE ((month <= MONTH(NOW()) and year = YEAR(NOW()))
or (month >= MONTH(Date_add(Now(),interval - 12 month)) and year = YEAR(Date_add(Now(),interval - 12 month))))
and User = **ID OF USER**) as sub
자체에이 쿼리는 지난 12 개월 동안 나에게 사용자의 판매를 제공합니다. 그 결과는 각 사용자마다 동일하지만 다른 계산을 위해 필요하다는 것을 알고 있습니다. 내 문제는 하위 쿼리가 원래 ID에서 사용자 ID를 읽을 수 있도록 2 쿼리를 결합하는 방법입니다.
미리 감사드립니다.
왜 'SUM (total)'을 할 필요가 있습니까? 단 하나의 '합계'가 있으므로 합계는 값과 같습니다. – Barmar
두 번째 쿼리를'GROUP BY User'로 변경 한 다음 두 쿼리'ON s.id = sub.User'를 조인하십시오. – Barmar
맞습니다. 합계가 쓸모가 없습니다. 조인에 대한 완전한 예제를 줄 수 있습니까? – user518543