0
총계, 간접 및 직접 테이블 및 "요약"에서 데이터 가져 오기. 마지막 테이블 "int_data"가 "aspect_summary"에서 가져 오는 중입니다 ... 나머지 부분과 함께 훌륭하게 재생할 수는 없습니다. 내 쿼리는 1 행의 결과 만 제공하므로 이유를 파악할 수 없습니다. 제안?LEFT JOIN 4 테이블
SELECT user,
amin,
COALESCE(sum(tavg*tcomp)) AS d_task_min,
COALESCE(indirect.iminutes,0) AS i_task_min,
COALESCE(((amin)+(indirect.iminutes)/60),0) AS FAKE_d_call_hour,
COALESCE(tcomp*tavg,0) + COALESCE(indirect.iminutes,0) AS totals,
hrs_earned,
hrs_equiv,
minutes,
diff,
COALESCE(SUM(tot_rec_tasks)-sum(tot_i_tasks),0) AS tot_d_tasks,
COALESCE(tot_i_tasks,0) AS tot_i_tasks,
int_id,
ROUND(COALESCE((((amin-(sum(indirect.iminutes)))/60)+ (sum(indirect.iminutes)/60)),0),2) AS ttime2,
ROUND(COALESCE((hrs_earned/(((amin-(sum(indirect.iminutes)))/60)+ (sum(indirect.iminutes)/60)))*100,0),2) AS prod,
ROUND((COALESCE((hrs_earned/hrs_equiv),0)*100),2) AS eff,
ROUND(COALESCE(hrs_earned/(((amin-(sum(indirect.iminutes)))/60)+ (sum(indirect.iminutes)/60)),0)*100,2) AS util,
amin AS aspect_time
FROM
(
SELECT
U.user_name AS user,
U.user_id AS tuser_id,
M.minutes AS tminutes,
ta.task_type AS ttasktype,
ta.task_average as tavg,
tc.completed as tcomp,
ROUND(SUM((((TA.task_average)*TC.completed))/60),2) AS ttime,
ROUND(SUM((((TA.task_average)*TC.completed))/60),2) AS hrs_earned,
ROUND(SUM(((TA.task_average/6)*TC.completed)),2) AS hrs_equiv,
ROUND(SUM(M.minutes/60),2) AS minutes,
ROUND((SUM(M.minutes)/60),2)-ROUND(SUM((TA.task_average*TC.completed)/60),2) AS diff,
SUM(TC.completed) AS tot_rec_tasks
FROM summary S
JOIN users U
ON U.user_id = S.user_id
JOIN minutes M
ON M.minutes_id = S.minutes_id
JOIN tcompleted TC
ON TC.tcompleted_id = S.tcompleted_id
JOIN tasks TA
ON TA.task_id = S.task_id
JOIN hour_interval H
ON H.hourinterval_id = S.hourinterval_id
AND DATE(submit_date) = curdate()
AND TIME(submit_date) BETWEEN '00:00:00' and '23:59:59'
GROUP BY tuser_id) AS total
LEFT JOIN
(SELECT U.user_id AS iuser_id, M.minutes AS iminutes, tc.completed AS tot_i_tasks
FROM summary S
JOIN users U
ON U.user_id = S.user_id
JOIN minutes M
ON M.minutes_id = S.minutes_id
JOIN tasks TA
ON TA.task_id = S.task_id
JOIN tcompleted TC
ON TC.tcompleted_id = S.tcompleted_id
WHERE TA.task_type='indirect'
AND DATE(submit_date) = curdate()
AND TIME(submit_date) BETWEEN '00:00:00' and '23:59:59'
GROUP BY iuser_id) AS indirect
ON tuser_id = iuser_id
LEFT JOIN
(SELECT U.user_id AS duser_id
FROM summary S
JOIN users U
ON U.user_id = S.user_id
JOIN minutes M
ON M.minutes_id = S.minutes_id
JOIN tcompleted TC
ON TC.tcompleted_id = S.tcompleted_id
JOIN tasks TA
ON TA.task_id = S.task_id
WHERE TA.task_type='direct'
AND DATE(submit_date) = curdate()
AND TIME(submit_date) BETWEEN '00:00:00' and '23:59:59'
GROUP BY duser_id) AS direct
ON tuser_id = duser_id
LEFT JOIN
(Select U.user_id AS int_id, SUM(M.minutes) AS amin
FROM aspect_summary A
JOIN users U ON U.user_id = A.user_id
JOIN minutes M ON M.minutes_id = A.minutes_id
JOIN hour_interval H ON H.hourinterval_id = A.hourinterval_id
AND DATE(submit_date) = curdate()
AND TIME(submit_date) BETWEEN '00:00:00' and '23:59:59'
GROUP BY int_id) AS int_data
ON tuser_id = int_id
쿼리를 세분화하여 일부 개인을 선택하고 어떤 내부 쿼리가 잘못된 결과를 제공하는지 확인합니다. – nawfal