>mighty, а у тебя товар поставляет строго один поставщик ?!
Нет конечно, это алкагольная продукция, в декларации должны указываться остатки на начало периода, конец периода, обороты, с разбивкой по группам "Водка", "Ликеро-водочная продукция" и др., с разбивкой по импорту, российскому яду :), местному и неместному..Все цифры в бутылках..
>У тебя оплату в Супермаге разносят? Или кассовые операции?
В СМ есть и кассовые операции и оплата..
Нашеееееееел!!!!!!!!! Спасибо всем!! это я протормозил! в моем запросе я документы со спецификацией связываю по одному полю ID, а надо по 2-ум, ID и DOCTYPE :) Уффф, бывает же :) Спасибо всем еще раз!
Запрос получился не такой красивый как у Mtirt, но затоработающий на 100% и очень быстро (3,5 секунды)
select
decode(instr(upper(C.NAME),'ВОДКА'),1,'Водка','')||
decode(instr(upper(C.NAME),'ШАМПАНСКОЕ'),1,'Шампанское','')||
decode(instr(upper(C.NAME),'ВИНО'),1,'Вина','')||
decode(instr(upper(C.NAME),'КОНЬЯК'),1,'Коньяки','')
GRUPPA,
C.ARTICLE,C.NAME,
nvl(PB.COUNT_IN_B,0) PRIHOD_B,nvl(PE.COUNT_IN_E,0) PRIHOD_E,nvl(RB.COUNT_OUT_B,0) RASHOD_B,nvl(RE.COUNT_OUT_E,0) RASHOD_E,
nvl(PB.COUNT_IN_B,0)-nvl(RB.COUNT_OUT_B,0) OSTATOK_B,
nvl(PE.COUNT_IN_E,0)-nvl(RE.COUNT_OUT_E,0) OSTATOK_E,
nvl(PE.COUNT_IN_E,0)-nvl(PB.COUNT_IN_B,0) PRIHOD_V_PEROID,
nvl(RE.COUNT_OUT_E,0)-nvl(RB.COUNT_OUT_B,0) RASHOD_V_PERIOD
from smcard c,sacardclass t,smcardproperties tg,
(
select sum(ds.QUANTITY) COUNT_IN_B,ds.ARTICLE
from smdocuments d,smspec ds
where
d.ID=ds.DOCID
and d.DOCTYPE=ds.DOCTYPE
and d.docstate>=2
and d.opcode in (0,3,9,13,18)
and d.CREATEDAT<=to_date('01.07.2006','DD.MM.YYYY')
group by ds.ARTICLE
) PB,
--расходы на начальную дату
(
select sum(ds.QUANTITY) COUNT_OUT_B,ds.ARTICLE
from smdocuments d,smspec ds
where
d.ID=ds.DOCID
and d.DOCTYPE=ds.DOCTYPE
and d.docstate>=2
and d.opcode in (1,2,7,8,10,12)
and d.CREATEDAT<=to_date('01.07.2006','DD.MM.YYYY')
group by ds.ARTICLE
) RB,
--приходы на конечную дату
(
select sum(ds.QUANTITY) COUNT_IN_E,ds.ARTICLE
from smdocuments d,smspec ds
where
d.ID=ds.DOCID
and d.DOCTYPE=ds.DOCTYPE
and d.docstate>=2
and d.opcode in (0,3,9,13,18)
and d.CREATEDAT<=to_date('01.09.2006','DD.MM.YYYY')
group by ds.ARTICLE
) PE,
--расходы на конечную дату
(
select sum(ds.QUANTITY) COUNT_OUT_E,ds.ARTICLE
from smdocuments d,smspec ds
where
d.ID=ds.DOCID
and d.DOCTYPE=ds.DOCTYPE
and d.docstate>=2
and d.opcode in (1,2,7,8,10,12)
and d.CREATEDAT<=to_date('01.08.2006','DD.MM.YYYY')
group by ds.ARTICLE
) RE
where
--smcard c, sacardclass t,smcardproperties tg,
-- ds.ARTICLE=c.ARTICLE
c.ARTICLE=pb.ARTICLE(+)
and c.ARTICLE=rb.ARTICLE(+)
and c.ARTICLE=pe.ARTICLE(+)
and c.ARTICLE=re.ARTICLE(+)
and t.ID=c.IDCLASS
and tg.ARTICLE=c.ARTICLE
and tg.PROPID=0
and t.TREE LIKE CONCAT('1.','%')
and tg.PROPVAL='ООО "Взлет"'
and not PB.COUNT_IN_B||PE.COUNT_IN_E||RB.COUNT_OUT_B||RE.COUNT_OUT_E is null
параметры сами проставите кому надо, мы используем в качество свойства 0 для карточек разделение по Торгоавым центрам, по ним я делаю отбор..