Цитата: Shlong ➤ для меня это тяжеловато... Если закинуть скрипт в том виде в каком он есть, ругается на Priecetype_id... выкидываем AND A.PRICETYPE = Priecetype_id, т.к. вид цены у меня один, начинает ругаться на IDClass_ID... Назначение 2-го подзапроса для меня ваще темный лес :teddie_04:
Здесь IDClass_ID - это параметр, указывающий путь узла, для которого необходимо найти наценку.
То, что тебе надо, выглядит примерно так:
Код:
select cr.article "артикул",
cr.name "название",
ce.extracharge "наценка карточки",
b.tree "№",
b.name "классификатор",
min(a.extracharge) keep (dense_rank first order by s.tree desc) "наценка группы"
from supermag.smmarkupclass a,
supermag.sacardclass s,
supermag.sacardclass b,
supermag.smcard cr,
supermag.smextracharge ce
where ((substr(b.tree, 1, instr(b.tree, '.', -1, 1)-1) like
s.tree || '%') or s.id = 0 or b.tree=s.tree)
and a.idclass = s.id
--and a.pricetype = 0 - если надо по виду цены
and a.extracharge is not null
and cr.idclass=b.id
and cr.article=ce.article(+)
--and b.tree like '2.%' - если надо по заданному узлу
group by cr.article,
cr.name,
ce.extracharge,
b.tree,
b.name