使用SUM值创建视图

时间:2015-07-02 02:02:28

标签: sql oracle

我不知道如何处理这个,我想创建一个视图

列为FullName,StudentID,HoursPassed,HoursFailed和HoursPassed + HoursFailed为主修金融的学生。

但我的列标题必须是FullName,StudentID,HoursPassed,HoursFailed和HoursAttempted

到目前为止,我有:

CREATE VIEW A5T7 AS
SELECT (firstname || ' ' || lastname) AS "FullName", StudentID, HoursPassed, HoursFailed, 
SUM (HoursPassed,HoursFailed) AS "HoursAttempted",
FROM A5
WHERE Upper(Major1)='FIN'OR Upper(Major2)='FIN'
GROUP BY ???
ORDER BY HoursAttempted;

我很确定我的查询错误,某处。我只是不知道如何处理标题名称和SUM值。我的GROUP BY似乎也不对。

我需要五列以及SUM函数来添加最后一列

1 个答案:

答案 0 :(得分:0)

SUM()只接受一个参数。所以,你可以试试这个:

CREATE VIEW A5T7 AS
    SELECT (firstname || ' ' || lastname) AS FullName,
           StudentID, HoursPassed, HoursFailed, 
           SUM(HoursPassed + HoursFailed) AS HoursAttempted
    FROM A5
    GROUP BY Upper(Major1) = 'FIN' AND Upper(Major2) = 'FIN'
    ORDER BY HoursAttempted;

编辑:

上述方法不起作用,因为group by子句实际上是where子句。我想你的意思是:

CREATE VIEW A5T7 AS
    SELECT (firstname || ' ' || lastname) AS FullName,
           StudentID,  
           SUM(HoursPassed + HoursFailed) AS HoursAttempted
    FROM A5
    WHERE Upper(Major1) = 'FIN' AND Upper(Major2) = 'FIN'
    GROUP BY firstname, lastname, StudentId
    ORDER BY HoursAttempted;

Here是一个SQL小提琴。