Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
195 views
in Technique[技术] by (71.8m points)

mysql - How to fix this SQL statement?


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)
SELECT c.cost_center_name as cost_center_name, 
       COUNT(e.employee) as number_of_employees, 
       SUM(e.w2_wages) as total_wages, 
       c.qualified_percent, 
       c.qualified_percent*SUM(e.w2_wages)*.01 as qualified_wages
FROM cost_center as c
CROSS JOIN employees as e
LEFT OUTER JOIN employees e2 ON e.department = c.cost_center_name
GROUP BY cost_center_name

What is the problem in initial query? The precedence.

Comma has lower priority then JOIN. So FROM clause is totally

FROM cost_center as c, (
                        employees as e
LEFT OUTER JOIN employees e2 ON e.department=cost_center_name
                        )

And when 2 employees copies are joined cost_center_name column which is posessed in cost_center table is not visible.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...