Просмотр сальдовых и текущих остатков

Программирование на Атлантисе (VIP, FCOM, ARD), FastReport

Модераторы: m0p3e, edward_K, Модераторы

Ответить
Olegpro
Новичок
Сообщения: 25
Зарегистрирован: 06 фев 2014, 11:36

Просмотр сальдовых и текущих остатков

Сообщение Olegpro »

Добрый день!

Мне необходимо написать запрос в PL/SQL Developer с целью получить список МЦ, у которых есть сальдовые \ текущие остатки. Каким образом мне это сделать? Не совсем понимаю структуру таблицы saldomc. Чтобы получить список МЦ, у которых есть сальдовые остатки, необходимо добавлять условие на дату (текущую дату dsaldo) или смотреть последнюю по дате строку таблицы и сравнивать количество с нулем?

Заранее спасибо за помощь.
Den
Местный житель
Сообщения: 1844
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Ярославская область ОАО "Часовой завод Чайка" г. Углич
Контактная информация:

Re: Просмотр сальдовых и текущих остатков

Сообщение Den »

http://tyumbit.ru/gal_forum/viewtopic.p ... 8&start=30

имхо, оптимально через OVER - аналитическую. Она в PLSQL вроде тоже есть. Я по линку приводил пример для TSQL
Olegpro
Новичок
Сообщения: 25
Зарегистрирован: 06 фев 2014, 11:36

Re: Просмотр сальдовых и текущих остатков

Сообщение Olegpro »

Я не очень понимаю саму логику. Вопрос о скорости пока не стоит. Каким образом мне посмотреть сальдовые остатки на текущую дату? Для этого надо для каждой МЦ находить последнюю по дате и времени запись в saldomc и чтобы количество остатков было не равно нулю? Или я ошибаюсь?
Den
Местный житель
Сообщения: 1844
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Ярославская область ОАО "Часовой завод Чайка" г. Углич
Контактная информация:

Re: Просмотр сальдовых и текущих остатков

Сообщение Den »

вроде того..
+ учитывать нужно что остатки лежат saldomc на разрез мц+подр+мол+партия
Olegpro
Новичок
Сообщения: 25
Зарегистрирован: 06 фев 2014, 11:36

Re: Просмотр сальдовых и текущих остатков

Сообщение Olegpro »

Тогда каким образом мне найти последнюю по времени запись в таблице для каждой мц? И как учесть этот "разрез"? На что он влияет в случае, когда мне надо получить список МЦ, у которых есть остатки вне зависимости от мола-склада и т.д.?
Den
Местный житель
Сообщения: 1844
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Ярославская область ОАО "Часовой завод Чайка" г. Углич
Контактная информация:

Re: Просмотр сальдовых и текущих остатков

Сообщение Den »

не совсем понятно что не понятно.
dsaldo - дата остатков
CMC-CPODR-CMOL-CPARTY разрез

получаете на последнюю даты разрезы ненулевые по KOL, далее группируйте как Вам нужно
Olegpro
Новичок
Сообщения: 25
Зарегистрирован: 06 фев 2014, 11:36

Re: Просмотр сальдовых и текущих остатков

Сообщение Olegpro »

Объясню на примере.

Для условного МЦ в таблице saldomc есть n строк с разными датами и кол-вом:

строка 1 - cmc 1, dsaldo 1, kol 1, ...
строка 2 - cmc 1, dsaldo 2, kol 2, ...
строка 3 - cmc 1, dsaldo 3, kol 3, ...
строка 4 - cmc 1, dsaldo 4, kol 4, ...
... и т.д.

Как мне в запросе выбрать строку с последними датой-временем (например, это строка 4, в которой dsaldo 4 > dsaldo (с 1 по n, где n - кол-во строк в таблице saldomc для данной МЦ)), чтобы сравнить по kol с нулем? Возможно вопрос глупый, но опыта в установке таких условий в запросах PLSQL у меня мало.

Т.е. запрос должен выбрать из всех строк для каждой МЦ последнюю по времени. Если я правильно понимаю структуру saldomc.
Den писал(а):не совсем понятно что не понятно.
dsaldo - дата остатков
CMC-CPODR-CMOL-CPARTY разрез

получаете на последнюю даты разрезы ненулевые по KOL, далее группируйте как Вам нужно
Den
Местный житель
Сообщения: 1844
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Ярославская область ОАО "Часовой завод Чайка" г. Углич
Контактная информация:

Re: Просмотр сальдовых и текущих остатков

Сообщение Den »

Ой, это Вам быстрее всего тогда куда то сюда :
http://www.sql.ru/forum/oracle

Тут не совсем форум по Оракловому SQL все же
m0p3e
Местный житель
Сообщения: 1386
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Москва

Re: Просмотр сальдовых и текущих остатков

Сообщение m0p3e »

Как-то так:

Код: Выделить всё

select saldomc.fnrec from gal.saldomc where saldomc.fdsaldo = (select max(saldomc_last.fdsaldo) from gal.saldomc saldomc_last where saldomc_last.fcmc = saldomc.fcmc );
Это общий случай для оракла.
Olegpro
Новичок
Сообщения: 25
Зарегистрирован: 06 фев 2014, 11:36

Re: Просмотр сальдовых и текущих остатков

Сообщение Olegpro »

Спасибо. То, что нужно!
m0p3e писал(а):Как-то так:

Код: Выделить всё

select saldomc.fnrec from gal.saldomc where saldomc.fdsaldo = (select max(saldomc_last.fdsaldo) from gal.saldomc saldomc_last where saldomc_last.fcmc = saldomc.fcmc );
Это общий случай для оракла.
Ответить