A union all
必須對所有子查詢具有相同的列。因此,請添加第二列:
SELECT e.ename, SUM(md.prices) AS TotalSales
FROM Employee2 e inner join MakesD2 md on md.eid=e.eid
GROUP BY e.ename
UNION ALL
SELECT e.ename, NULL
FROM Employee2 e left join MakesD2 md on md.eid=e.eid
WHERE md.eid is NULL;
您的查詢可能不需要union all
。這可能是你想要什麼:
SELECT e.ename, SUM(md.prices) AS TotalSales
FROM Employee2 e left join
MakesD2 md
on md.eid = e.eid
GROUP BY e.ename;
然而,這是更接近原始的(因爲name
可以出現在查詢中多次):
SELECT e.ename, SUM(md.prices) AS TotalSales
FROM Employee2 e left join
MakesD2 md
on md.eid = e.eid
GROUP BY e.ename, (CASE WHEN md.eid IS NULL THEN 1 ELSE 2 END);
此版本只包括name
一次,甚至如果Employee2
中存在多個行,但給定名稱不匹配MakesD2
。
*我不斷收到此錯誤*絕對是毫無意義的,除非你也有什麼*此錯誤*是特別。它在你的屏幕上,但我們無法從我們所在的位置看到它。你問我們**免費幫助**解決**你的問題**;至少你應該做的就是給我們提供你可以使用的信息。 –