Плохой возврат функции pl / sql - PullRequest
0 голосов
/ 26 июня 2019

Функция всегда возвращает 0, независимо от того, какое число я выберу

create or replace function FNC_PRICE_AVE_BUY(PRICE_AVE in number)
    return number
    is
    V_AVE number(6,2);
begin
    select NVL((avg(AMOUNT_PRICE_BUY)),0) into V_AVE from BUYER
    where AMOUNT_PRICE_BUY = PRICE_AVE;
    return V_AVE;
end FNC_PRICE_AVE_BUY;
/
set serveroutput on;
select FNC_PRICE_AVEC_BUY(31) as Average_price_321 from dual;

Ответы [ 2 ]

1 голос
/ 26 июня 2019

select AMOUNT_PRICE_BUY from BUYER where AMOUNT_PRICE_BUY = 31;

Значение вышеприведенного запроса возвращает нулевое значение, поэтому вы получаете ноль каждый раз

0 голосов
/ 26 июня 2019

Основываясь на комментарии № 2 под вашим вопросом, я думаю, что вам нужна логика:

Создайте функцию, которая возвращает среднюю цену для покупателя.

Параметр должен быть покупателемЯ БЫ.

Возвращаемое значение - средняя цена для этого покупателя.

create or replace function FNC_PRICE_AVE_BUY(BUYER_ID in number)
    return number
    is
    V_AVE number(6,2);
begin
    select NVL((avg(AMOUNT_PRICE_BUY)),0) into V_AVE from BUYER
    where ID = BUYER_ID;
    return V_AVE;
end FNC_PRICE_AVE_BUY;
...