22.06.2009 16:23
SMak
 
Есть программа Максимизатор. В ней есть отчёт "!Товары. Заказ товаров. Потребности магазинов." Запрос в отчёте (не совсем оригинал):
Код:
select
l.name LOC_NAME,
c.article ARTICLE,
replace(c.name,chr(9),' ') CARD_NAME,
g.quantity OSTATOK_TEK,
ROUND(w.ssr,2) SSR,
trunc(SYSDATE-1+FLOOR(decode(SIGN(g.quantity),-1,0,g.quantity)/w.ssr)) OSTATOK_DO,
trunc(SYSDATE+5) ZAKAZ_NA,
decode(SIGN(CEIL(w.ssr*(5-FLOOR(decode(SIGN(g.quantity),-1,0,g.quantity)/w.ssr)))),1,CEIL(w.ssr*(5-FLOOR(decode(SIGN(g.quantity),-1,0,g.quantity)/w.ssr))),0) ZAKAZ
from
(
select
     f.article, f.salelocationfrom,
     sum(f.saleq/(to_date('21.06.2009','DD.MM.YYYY')-to_date('01.05.2009','DD.MM.YYYY'))) SSR
from supermag.ffmaprep f
where
     f.rectype=1 and
     f.saletype='CS' and
     f.saledate between to_date('01.05.2009','DD.MM.YYYY') and to_date('21.06.2009','DD.MM.YYYY')
     and f.salelocationfrom in (select l.id from supermag.smstorelocations l where l.idclass>0 and  l.id in (5))
     and f.article in (select c.article  from 
   supermag.smcard c 
   ,supermag.sacardclass d 
 where 
 c.idclass=d.id 
 and c.accepted=1
 and ( d.tree like '7.%'))
group by
     f.article,
     f.salelocationfrom
) w,
supermag.smgoods g,
supermag.smstorelocations l,
supermag.smcard c
where
     w.article=c.article and
     w.article=g.article and
     w.salelocationfrom=g.storeloc and
     w.salelocationfrom=l.id and
     c.accepted=1
      and decode(SIGN(CEIL(w.ssr*(5-FLOOR(decode(SIGN(g.quantity),-1,0,g.quantity)/w.ssr)))),1,CEIL(w.ssr*(5-FLOOR(decode(SIGN(g.quantity),-1,0,g.quantity)/w.ssr))),0)>0
Order by LOC_NAME,CARD_NAME
Вопрос: как сюда добавить поставщиков? Если не трудно, то с разжёвыванием...
22.06.2009 17:19
Mtirt
 
Как-то так, хотя бред сивой кобылы получается...
Особенно при наличии неустановленной себестоимости.

Код:
select l.name LOC_NAME,
       c.article ARTICLE,
       w.incomeclientindex,
       replace(c.name, chr(9), ' ') CARD_NAME,
       g.quantity OSTATOK_TEK,
       ROUND(w.ssr, 2) SSR,
       trunc(SYSDATE - 1 +
             FLOOR(decode(SIGN(g.quantity), -1, 0, g.quantity) / w.ssr)) OSTATOK_DO,
       trunc(SYSDATE + 5) ZAKAZ_NA,
       decode(SIGN(CEIL(w.ssr *
                        (5 -
                        FLOOR(decode(SIGN(g.quantity), -1, 0, g.quantity) /
                               w.ssr)))),
              1,
              CEIL(w.ssr *
                   (5 - FLOOR(decode(SIGN(g.quantity), -1, 0, g.quantity) /
                              w.ssr))),
              0) ZAKAZ
  from (select f.article,
               f.salelocationfrom,
               f.incomeclientindex,
               sum(f.saleq / (to_date('21.06.2009', 'DD.MM.YYYY') -
                   to_date('01.05.2009', 'DD.MM.YYYY'))) SSR
          from supermag.ffmaprep f
         where f.rectype = 1
           and f.saletype = 'CS'
           and f.saledate between to_date('01.05.2009', 'DD.MM.YYYY') and
               to_date('21.06.2009', 'DD.MM.YYYY')
           and f.salelocationfrom in
               (select l.id
                  from supermag.smstorelocations l
                 where l.idclass > 0
                   --and l.id in (5)
                   )
           and f.article in (select c.article
                               from supermag.smcard c, supermag.sacardclass d
                              where c.idclass = d.id
                                and c.accepted = 1
                                and (d.tree like '2.%'))
         group by f.article, f.salelocationfrom, f.incomeclientindex) w,
       supermag.smgoods g,
       supermag.smstorelocations l,
       supermag.smcard c
 where w.article = c.article
   and w.article = g.article
   and w.salelocationfrom = g.storeloc
   and w.salelocationfrom = l.id
   and c.accepted = 1
   and decode(SIGN(CEIL(w.ssr *
                        (5 -
                        FLOOR(decode(SIGN(g.quantity), -1, 0, g.quantity) /
                               w.ssr)))),
              1,
              CEIL(w.ssr *
                   (5 - FLOOR(decode(SIGN(g.quantity), -1, 0, g.quantity) /
                              w.ssr))),
              0) > 0
 Order by LOC_NAME, CARD_NAME
22.06.2009 17:46
SMak
 
Цитата:
Mtirt Как-то так, хотя бред сивой кобылы получается...
Особенно при наличии неустановленной себестоимости.
не понимаю...
задаю период какой хочу, получаю средние (количественные) продажи в день, расчитываю сколько надо заказать на следующие 3-7 дней
никакой возни с контрактами/заказами в см+
где засада?
22.06.2009 17:53
Mtirt
 
Если у тебя 2 поставщика, поставляют одинаковый товар, то получится, в итоге по запросу, что часть надо заказать одному поставщику, а часть - другому.
Ну и если есть неустановленная себестоимость, то поставщика скорее всего не будет, а количество будет.
Что ты будешь делать, если тебе надо перестать работать с поставщиком.

Ну и зря ты так о заказах в Супермаге. "Заказ по контракту", в последних версиях очень неплохой и наглядный инструмент создания заказа.
23.06.2009 09:32
SMak
 
запрос сойдёт пока я с см+ разбираюсь...
есть ли где пошаговая кратенькая инструкция по заказам/контрактам см+? потому как по офф. докам я буду ещё долго соображать...
23.06.2009 16:00
Mtirt
 
Цитата:
SMak запрос сойдёт пока я с см+ разбираюсь...
есть ли где пошаговая кратенькая инструкция по заказам/контрактам см+? потому как по офф. докам я буду ещё долго соображать...
У нас поиск работает.
Часовой пояс GMT +3, время: 18:48.

Форум на базе vBulletin®
Copyright © Jelsoft Enterprises Ltd.
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.