Oracle SQL给出错误:ORA-00909:参数数无效

Oracle SQL给出错误:ORA-00909:参数数无效,oracle,Oracle,我的查询中有两个错误检查我的查询是对还是错我是Oracle的新手所以不介意 下面是SQL SQL给出错误:ORA-00909:参数数无效 CREATE VIEW order_summery AS SELECT o.id, o.order_date,(cu.first_name||' '|| cu.last_name) as customer_name ,Sum(NVL(p.price,0)) as total_amount ,Sum(NVL(p.discount_amou

我的查询中有两个错误检查我的查询是对还是错我是Oracle的新手所以不介意

下面是SQL

SQL给出错误:
ORA-00909:参数数无效

CREATE VIEW order_summery
AS
SELECT o.id,
    o.order_date,(cu.first_name||' '|| cu.last_name) as customer_name
    ,Sum(NVL(p.price,0)) as total_amount
    ,Sum(NVL(p.discount_amount,0)) as discount_amount
    ,NVL(Sum(NVL(p.price,0),0)) - NVL(Sum(NVL(p.discount_amount,0)),0) as final_amount
FROM tbl_order o
INNER JOIN tbl_customer cu on o.customer_id = cu.id
INNER JOIN tbl_order_item oi on o.id= oi.order_id
INNER JOIN tbl_product p on oi.product_id= p.id;
您的问题在这里
(Sum(NVL(p.price,0),0))
我想您需要使用group by function,因为您有Sum。和无需nvl的总和

CREATE VIEW order_summery
AS
SELECT o.id,
    o.order_date,(cu.first_name||' '|| cu.last_name) as customer_name
    ,Sum(NVL(p.price,0)) as total_amount
    ,Sum(NVL(p.discount_amount,0)) as discount_amount
    ,Sum(NVL(p.price,0)) - Sum(NVL(p.discount_amount,0)) as final_amount
FROM tbl_order o
INNER JOIN tbl_customer cu on o.customer_id = cu.id
INNER JOIN tbl_order_item oi on o.id= oi.order_id
INNER JOIN tbl_product p on oi.product_id= p.id
group by o.id, o.order_date ,cu.first_name,cu.last_name ;
对于第二个查询,请删除id后面的

o.id,
    ,

固定最终金额参数(仅需要一个NVL函数):


您的最后2个
位置不正确-
NVL(总和(NVL(p.price,0),0))
。只需删除外部的
NVL
就可以了,在第一个参数中不需要它:括号放错了位置,给出的是
SUM
两个参数,而不是
NVL
。第二个:在
o_id
之后有一个无关的逗号。你真的不需要知道任何甲骨文来发现这些问题。如果查询太大/太复杂,无法找到确切的问题,请使用“分而治之:删除内容”,直到找到引起相同问题的最小内容。到那时,它通常会盯着你看,如果没有,开始添加空格和缩进。谢谢你,先生,我尝试了你的查询,之后我收到了这个错误“SQL错误:ORA-00904:“P”。“折扣金额”:无效标识符00904.00000-“%s:无效标识符”@用户3837868在表中
tbl\u product
您是否有名为
discount\u amount
的列?对不起,先生,我的列名是discount,在收到此错误后,我将每个折扣金额更改为折扣“SQL错误:ORA-00937:不是单个组函数00937.00000-”不是单个组函数“对不起,我问了很多questions@user3837868没关系,我在这里帮助您,因为我在回答中提到,您必须在查询结束时添加group by。检查我在answererror“SQL错误:ORA-00979:非分组表达式00979.00000—“非分组表达式”中提到的查询
CREATE VIEW order_summery
AS
SELECT o.id,
    o.order_date,(cu.first_name||' '|| cu.last_name) as customer_name
    ,Sum(NVL(p.price,0)) as total_amount
    ,Sum(NVL(p.discount_amount,0)) as discount_amount
    ,Sum(NVL(p.price,0)) - Sum(NVL(p.discount_amount,0)) as final_amount
FROM tbl_order o
INNER JOIN tbl_customer cu on o.customer_id = cu.id
INNER JOIN tbl_order_item oi on o.id= oi.order_id
INNER JOIN tbl_product p on oi.product_id= p.id
group by o.id, o.order_date ,cu.first_name,cu.last_name ;
o.id,
    ,
,Sum(NVL(p.price,0)) - Sum(NVL(p.discount_amount,0)) as final_amount