Я написал функцию, которая принимает два параметра, один из которых точка идентификатор цены, а вот в том, что таблицаPL SQL Oracle Функция :: Динамический диапазон Проверка
Create table PriceList
(
PListID number(8),
PriceListID number(8),
Pl_Qty number(5),
pl_Price number(4),
CONSTRAINT PriceList_PK PRIMARY KEY (PListID)
);
Извините за ужасного расстояния. и здесь есть функция
CREATE OR REPLACE FUNCTION PriceOfItem (pricepointid
pricelist.plistid%TYPE, qty deliveryline.qtyshipped%TYPE) return
varchar2 AS
cursor pricepoint is
select pricelistid, pl_price, pl_qty from
pricelist where pricelist.pricelistid = pricepointid;
pricescursor pricepoint%ROWTYPE;
BEGIN
open pricepoint;
LOOP
FETCH pricepoint into pricescursor;
EXIT WHEN pricepoint%NOTFOUND;
IF qty = pricescursor.pl_qty THEN
return pricescursor.pl_price;
END IF;
END LOOP;
close pricepoint;
END PriceOfItem;/
Теперь то, что я пытаюсь сделать с количеством отправленного в нем цена на основе диапазонов, предусмотренных, например: PriceList таблица имеет pricelistid и повторяют для этой конкретной записи которая связана с другой таблицей (из области видимости), и это, как она работает
Pricelistid Qty Price
18888888, 0, 60
18888888, 500, 55
18888888, 1000, 50
параметр кол-во, что я посылаю в функцию используется для сравнения с Qty в прейскуранте таблицы, теперь в реальности того, что Я хочу, чтобы отправленное количество было 0-499, а затем возвращало цену 60 или 500-599, затем 55, 1000 и более 50. Я сделал это для но по какой-то причине я просто совершенно озадачен.