0
CREATE VIEW KC_Salary AS 
SELECT DEPT_SNAP.DEPTNO,
        DEPT_SNAP.DNAME, 
        Sum(EMP.SAL) as Avg_Salary, 
        COUNT(EMP.SAL) as Total_Salary, 
        EMP.DEPTNO 
FROM DEPT_SNAP
union
select Sum(EMP.SAL) as Avg_Salary, 
       COUNT(EMP.SAL) as Total_Salary,
       EMP.DEPTNO 
from EMP;

我正在尝试使用两个不同的表创建视图。我得到了

SQL 错误:ORA-01789:查询块的结果列数不正确 1. 00000 -“查询块的结果列数不正确”

如果您对正在发生的事情有任何提示或想法,请提供帮助。

4

2 回答 2

0
CREATE VIEW KC_Salary AS 
SELECT DEPT_SNAP.DEPTNO,
               DEPT_SNAP.DNAME, 
               Avg(EMP.SAL) as Avg_Salary, 
               Sum(EMP.SAL) as Total_Salary
FROM DEPT_SNAP 
    ,EMP
WHERE DEPT_SNAP.DEPTNO = EMP.DEPTNO
GROUP BY DEPT_SNAP.DEPTNO, DEPT_SNAP.DNAME
于 2017-05-01T22:58:59.330 回答
0

您想组合两个语句的结果 - 其中第一个有五个,但第二个只有三列。两者都需要具有相同数量的列。(并且同一位置的列需要是兼容的类型。)

附带说明:您的列别名似乎与应用的函数并不匹配。

更新

总结评论,您可能正在寻找类似的内容:

CREATE VIEW KC_Salary AS 
SELECT
  D.DEPTNO
  , D.DNAME 
  , AVG(E.SAL) AS Avg_Salary
  , SUM(E.SAL) AS Total_Salary
FROM DEPT_SNAP D
JOIN EMP E
  ON D.DEPTNO = E.DEPTNO
GROUP BY D.DEPTNO, D.DNAME
;
于 2017-04-30T21:53:06.630 回答