[ОТВЕТИТЬ]
Опции темы
06.07.2007 12:35  
nekrom@nt.grave
не подход странный, а работаю всего третий день, с СМ.
Мне сказали сделать репорт, я делаю, дали структуру, остальное не мое дело, и это не мое решение
 
06.07.2007 12:49  
YuraZ
Я так понимаю, что человек просто спрашивал как получить остатки на дату. Ведь не обязательно для этого считать статистику.
Тут 2 варианта:
1. считать все приходы с самого начала и отнимать от них все расходы, то же с самого начала.
2. считать все приходы и расходы с конца до указанной даты и отнимать их от кол-ва указанного в SMGoods.
На сколько я помню и тот и другой запрос уже проскакивали сдесь на форуме.
 
06.07.2007 12:51  
nekrom@nt.grave
пасибо за понимание, а ссылочку, или имя топика
 
10.07.2007 11:49  
nekrom@nt.grave
FFMapRep и проделать предложенное YuraZ, токмо не с самого начала, а с суказанной даты.
Поможет?
 
10.07.2007 13:46  
Pyatak
Я получал остатки на дату таким вот запросом:
Код:
SELECT c.article as "Артикул",
       c.name as "Наименование",
       NVL(q.quantity,0)-NVL(pr.quantity,0)+NVL(rs.quantity,0) as "Остаток"
  FROM supermag.smcard c,
       supermag.smgoods q,
       (
        SELECT dc.article,
               SUM(dc.quantity) as quantity
          FROM supermag.smdocuments d,
               supermag.smspec dc
         WHERE d.doctype=dc.doctype
           AND d.id=dc.docid
           AND d.docstate>=2
           AND TO_DATE(d.createdat) >= ('03.07.2007')
           AND d.locationto = (4)
        GROUP BY dc.article
       ) pr,
       (
        SELECT dc.article,
               SUM(dc.quantity) as quantity
          FROM supermag.smdocuments d,
               supermag.smspec dc
         WHERE d.doctype=dc.doctype
           AND d.id=dc.docid
           AND d.docstate>=2
           AND TO_DATE(d.createdat) >= ('03.07.2007')
           AND d.locationfrom = (4)
        GROUP BY dc.article
       ) rs
 WHERE c.article=pr.article(+)
   AND c.article=rs.article(+)
   AND c.article=q.article(+)
   AND q.storeloc=(4)
Обрати внимание, что в запросе в двух местах нужно подставить нужную дату и в трех местах код места хранения.
В моей базе запрос выполнился за 1,52 секунды.
 
11.07.2007 12:48  
nekrom@nt.grave
как теперь посчитать $
ведь цена могёт меняться, где её смотреть на нужную дату
я имею ввиду цену соответствующую q.quantity
 
11.07.2007 14:05  
nekrom@nt.grave
Код:
SELECT c.article as "Артикул",
       c.name as "Наименование",
       NVL(q.quantity,0)-NVL(pr.quantity,0)+NVL(rs.quantity,0) as "Остаток",
       NVL(p.price,0)-NVL(pr.totalprice,0)+NVL(rs.totalprice,0) as "money"
  FROM supermag.smcard c,
       supermag.smgoods q,
       supermag.smprices p,
       (
        SELECT dc.article,
               SUM(dc.quantity) as quantity,
               SUM(dc.totalprice) as totalprice
          FROM supermag.smdocuments d,
               supermag.smspec dc
         WHERE d.doctype=dc.doctype
           AND d.id=dc.docid
           AND d.docstate>=2
           AND TO_DATE(d.createdat) >= ('01.07.2007')
           AND d.locationto = (2)
        GROUP BY dc.article
       ) pr,
       (
        SELECT dc.article,
               SUM(dc.quantity) as quantity,
               SUM(dc.totalprice) as totalprice
          FROM supermag.smdocuments d,
               supermag.smspec dc
         WHERE d.doctype=dc.doctype
           AND d.id=dc.docid
           AND d.docstate>=2
           AND TO_DATE(d.createdat) >= ('01.07.2007')
           AND d.locationfrom = (2)
        GROUP BY dc.article
       ) rs
 WHERE c.article=pr.article(+)
   AND c.article=rs.article(+)
   AND c.article=q.article(+)
   AND c.article=p.article(+)
   AND q.storeloc=(2)
   AND p.storeloc=(2)
   AND UPPER(c.name) LIKE '%ГАЗЕТА%'
где не так?
 
11.07.2007 14:13  
kadr
Цитата:
Сообщение от nekrom@nt.grave
как теперь посчитать $
ведь цена могёт меняться, где её смотреть на нужную дату
я имею ввиду цену соответствующую q.quantity
табличка smpricehistory содержит историю цен
 
11.07.2007 14:15  
Mtirt
Цитата:
Сообщение от nekrom@nt.grave
где не так?
Так и хочется ответить - в ДНК.

В smspec хранится цена из документа. Для приходной накладной - цена поставщика, для расходной и Z-отчета - цена продажи.

Просто подставляя цены ты получаешь большую и красивую кашу...
Для того, чтобы получить нормальный ответ, надо его нормально задать.
В твоем случае, понять, в каких ценах тебе нужны остатки на дату...
 
 


Опции темы



Часовой пояс GMT +3, время: 17:35.

Все в прочитанное - Календарь - RSS - - Карта - Вверх 👫 Яндекс.Метрика
Форум сделан на основе vBulletin®
Copyright ©2000 - 2016, Jelsoft Enterprises Ltd. Перевод: zCarot и OlegON
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.