SQL выдает ошибку: ORA-00909: неверное количество аргументов - PullRequest
0 голосов
/ 10 января 2019

У меня две ошибки в местах запросов, проверяйте мои запросы правильно или неправильно. Я новичок в Oracle, поэтому не против

Вот SQL

SQL выдает ошибку: ORA-00909: Invalid Number of Arguments

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;
SQL Error: ORA-00936: missing expression
00936. 00000 -  "missing expression" 
CREATE VIEW sales_report
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
    ,CASE o.is_deliverd WHEN 'y' THEN 'Deliverd'  ELSE 'Not Deliverd' END as status    
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;

Ответы [ 2 ]

0 голосов
/ 10 января 2019

Исправить параметр final_amount (нужна только одна функция NVL):

,Sum(NVL(p.price,0)) - Sum(NVL(p.discount_amount,0)) as final_amount
0 голосов
/ 10 января 2019

ваша проблема здесь (Sum(NVL(p.price,0),0)) Также, я думаю, вам нужно использовать группу по функции, потому что у вас есть сумма. и нет необходимости в нвл в сумме.

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,
    ,
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...