У меня есть таблица SQL, в которой есть столбцы, такие как ITEM_ID, FROM_QUANTITY, TO_QUANTITY, LIST_PRICE.Теперь каждый элемент должен иметь FROM_QUANTITY от 1 до 12 и ноль в FROM_QUANTITY.
Теперь, чтобы проверить, какое количество отсутствует в ITEM в таблице, я написал SQL-запрос, который выведет None, если FROM_QUANTITYтам нет.
Запрос работает, как и ожидалось.Просто у каждого товара также есть нулевое значение в количестве и с ним связана какая-то цена.Но мой запрос показывает значение NULL как прейскурантную цену для него.
Вот мой запрос
with pl as (
select DISTINCT ITEM_ID, FROM_QUANTITY,TO_QUANTITY, coalesce(to_char(list_price), 'NONE') as list_price
from PRICELIST_LINE
where item_id IN ('XYZ') and
PRICELIST_HDR_KEY in (select Pricelist_Hdr_Key
from PRICELIST_HDR
where PRICELIST_NAME IN ('ABC') and
SELLER_ORGANIZATION_CODE IN ('100')
) and SYSDATE < END_DATE_ACTIVE
)
select i.item_id, u.from_quantity, pl.to_quantity,pl.list_price
from (select distinct item_id from pl) i cross join
(select '1' as from_quantity from dual union all
select '2' as from_quantity from dual union all
select '3' as from_quantity from dual union all
select '4' as from_quantity from dual union all
select '5' as from_quantity from dual union all
select '6' as from_quantity from dual union all
select '7' as from_quantity from dual union all
select '8' as from_quantity from dual union all
select '9' as from_quantity from dual union all
select '10' as from_quantity from dual union all
select '11' as from_quantity from dual union all
select '12' as from_quantity from dual union all
select '' as from_quantity from dual
) u left join
pl
on pl.item_id = i.item_id and pl.from_quantity = u.from_quantity;
Теперь выходные данные для этого имеют вид:
ITEM_ID FROM_QUANTITY TO_QUANTITY LIST_PRICE
------- ------------- ----------- ----------
ABC 1 2 100
ABC
Ожидается:
ITEM_ID FROM_QUANTITY TO_QUANTITY LIST_PRICE
------- ------------- ----------- ----------
ABC 1 2 100
ABC 200