|
Получение сроков годности партий в УТ 10.3 | ☑ | ||
---|---|---|---|---|
0
123GO
20.01.20
✎
10:43
|
Добрый день. Скажите, пожалуйста, как правильно написать запрос (чтобы было поменьше циклов чтения, данных в базе очень много):
Задача вроде бы не сложная - получить первые 3 партии по каждой номенклатуре. У меня идея выбрать три таблицы с МИНИМУМ(Партия.Дата), но как их соединить так, чтобы исключить периоды друг друга? |
|||
1
123GO
20.01.20
✎
10:46
|
Может есть возможность как-то воспользоваться ВЫБРАТЬ ПЕРВЫЕ 3, чтобы не плодить таблиц - было бы вообще идеально
|
|||
2
Гипервизор
20.01.20
✎
10:49
|
Вы уж определитесь что надо: "поменьше циклов чтения" или "не плодить таблиц"?
|
|||
3
123GO
20.01.20
✎
10:54
|
Надо минимально нагрузить уже и без того долго формирующийся отчет
|
|||
4
Йохохо
20.01.20
✎
11:01
|
(3) засунуть это в расшифровку
|
|||
5
123GO
20.01.20
✎
11:01
|
Получилась такая хрень(
ВЫБРАТЬ МИНИМУМ(Остатки.ДокументОприходования.Дата) КАК Дата, Остатки.Номенклатура КАК Номенклатура ПОМЕСТИТЬ ДатыПартия1 ИЗ РегистрНакопления.ПартииТоваровНаСкладах.Остатки(&Дата) КАК Остатки ГДЕ Остатки.КоличествоОстаток > 0 СГРУППИРОВАТЬ ПО Остатки.Номенклатура ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ МИНИМУМ(Остатки.ДокументОприходования.Дата) КАК Дата, Остатки.Номенклатура КАК Номенклатура ПОМЕСТИТЬ ДатыПартия2 ИЗ РегистрНакопления.ПартииТоваровНаСкладах.Остатки(&Дата) КАК Остатки ГДЕ Остатки.КоличествоОстаток > 0 И НЕ (Остатки.ДокументОприходования.Дата, Остатки.Номенклатура) В (ВЫБРАТЬ ДатыПартия1.Дата, ДатыПартия1.Номенклатура ИЗ ДатыПартия1) СГРУППИРОВАТЬ ПО Остатки.Номенклатура ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ МИНИМУМ(Остатки.ДокументОприходования.Дата) КАК Дата, Остатки.Номенклатура КАК Номенклатура ПОМЕСТИТЬ ДатыПартия3 ИЗ РегистрНакопления.ПартииТоваровНаСкладах.Остатки(&Дата) КАК Остатки ГДЕ Остатки.КоличествоОстаток > 0 И НЕ (Остатки.ДокументОприходования.Дата, Остатки.Номенклатура) В (ВЫБРАТЬ ДатыПартия1.Дата, ДатыПартия1.Номенклатура ИЗ ДатыПартия1) И НЕ (Остатки.ДокументОприходования.Дата, Остатки.Номенклатура) В (ВЫБРАТЬ ДатыПартия2.Дата, ДатыПартия2.Номенклатура ИЗ ДатыПартия2) СГРУППИРОВАТЬ ПО Остатки.Номенклатура ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ Остатки.ДокументОприходования.Дата КАК Дата, Остатки.Номенклатура КАК Номенклатура, Остатки.ДокументОприходования, Остатки.Склад, Остатки.КоличествоОстаток ИЗ РегистрНакопления.ПартииТоваровНаСкладах.Остатки(&Дата) КАК Остатки ГДЕ Остатки.КоличествоОстаток > 0 И (Остатки.ДокументОприходования.Дата, Остатки.Номенклатура) В (ВЫБРАТЬ ДатыПартия1.Дата, ДатыПартия1.Номенклатура ИЗ ДатыПартия1 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ ДатыПартия2.Дата, ДатыПартия2.Номенклатура ИЗ ДатыПартия2 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ ДатыПартия3.Дата, ДатыПартия3.Номенклатура ИЗ ДатыПартия3) УПОРЯДОЧИТЬ ПО Остатки.ДокументОприходования.Дата |
|||
6
D_E_S_131
20.01.20
✎
11:35
|
Если делать на СКД, то выбирай данные из остатков (Номенклатура, Партия, ДатаПартии), делаешь группировку по Номенклатуре и детальные записи, в "детальных" выводишь Партию и ДатуПартии, сортируешь "детальные" по дате партии и на закладке "Другие настройки" ставишь "Количество записей = 3".
|
|||
7
123GO
21.01.20
✎
02:29
|
Нет, к сожалению, отчет написан не на СКД( Переписывать его займет кучу времени..
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |