вот. развлекайся. не обалдеть, как изящно, но работает :)
поле "Вес" (у тебя "МАССА", замени в двух местах) в шаблоне не должно быть последним, а то вес не выберется. делать красиво мне под вечер лениво.
сначала отдельно отбирается все из групп, где вес в шаблоне стоит третим, потом дописывается все из групп, где вес четвертым.
Код:
select
replace(c.name,chr(9),' ') as name,
substr(c.name,instr(c.name,chr(9),1,2)+1,instr(c.name,chr(9),1,3)-instr(c.name,chr(9),1,2)-1) as ves,
g.quantity,
v.tree,
RTRIM(v.name1||'/'||v.name2||'/'||v.name3||'/'||v.name4||'/'||v.name5||'/'||v.name6||'/'||v.name7||'/'||v.name8||'/'||v.name9||'/'||v.name10||'/','/') as gr
from smcard c, smgoods g, svcardtreesplit v
where c.article=g.article
and v.id=c.idclass
and g.quantity<>0
and c.idclass in(
select a.id
from sacardnameformdef f, sacardclassaux a
where f.item=2
and f.formid=a.nameformid
and f.name='Вес')
union
select
replace(c.name,chr(9),' ') as name,
substr(c.name,instr(c.name,chr(9),1,3)+1,instr(c.name,chr(9),1,4)-instr(c.name,chr(9),1,3)-1) as ves,
g.quantity,
v.tree,
RTRIM(v.name1||'/'||v.name2||'/'||v.name3||'/'||v.name4||'/'||v.name5||'/'||v.name6||'/'||v.name7||'/'||v.name8||'/'||v.name9||'/'||v.name10||'/','/') as gr
from smcard c, smgoods g, svcardtreesplit v
where c.article=g.article
and v.id=c.idclass
and g.quantity<>0
and c.idclass in(
select a.id
from sacardnameformdef f, sacardclassaux a
where f.item=3
and f.formid=a.nameformid
and f.name='Вес')