|
Срез документов на дату | ☑ | ||
---|---|---|---|---|
0
Coldboy
24.06.15
✎
11:22
|
Здравствуйте. Есть документы со складами, мне нужно выбрать самые последние документы на текущую дату в разрезе этих складов.
Например Дата1 Склад1 Док№1 Дата2 Склад1 Док№2 Дата3 склад1 Док№3 Дата1 Склад2 Док№4 Дата2 Склад2 Док№5 Нужно, чтобы выбрались, документы Док№5 по склад2 и Док №3 по Склад1. Как такое в запросе отразить, чтобы потом в скд вывести ТЗ этих документов. По регистрам они движения не делают сразу говорю. |
|||
1
Dmitrii
гуру
24.06.15
✎
11:25
|
группировать по складу с МАКСИМУМ(Док.Дата).
|
|||
2
Coldboy
24.06.15
✎
11:34
|
(1) так вы имели виду?
ВЫБРАТЬ ПересчетТоваровТовары.Номенклатура, ПересчетТоваровТовары.Ссылка.Склад, МАКСИМУМ(ПересчетТоваровТовары.Ссылка.Дата) КАК Дата, ПересчетТоваровТовары.Ссылка.Магазин, ПересчетТоваровТовары.КоличествоУпаковок, ПересчетТоваровТовары.КоличествоУпаковокФакт ИЗ Документ.ПересчетТоваров.Товары КАК ПересчетТоваровТовары ГДЕ ПересчетТоваровТовары.Ссылка.Проведен = ИСТИНА СГРУППИРОВАТЬ ПО ПересчетТоваровТовары.Ссылка.Склад, ПересчетТоваровТовары.Номенклатура, ПересчетТоваровТовары.Ссылка.Магазин, ПересчетТоваровТовары.КоличествоУпаковок, ПересчетТоваровТовары.КоличествоУпаковокФакт |
|||
3
D_E_S_131
24.06.15
✎
11:46
|
А что выводить если есть несколько документов с на дату с временем 23:59:59?
|
|||
4
Dmitrii
гуру
24.06.15
✎
11:54
|
(2) Про другие поля типа Количество... в (0) ничего сказано не было.
Но сути это не меняет. Просто усложняет задачу. Нужно либо во временной таблице, либо во вложенном запросе сгруппировать данные по складам и с МАКСИМУМ по дате, а потом сделать левое соединение с основной таблицей документа. Единственный нюанс - если по одному складу было два документа с одинаковой датой - может имеет смысл группировать МАКСИМУМ по моменту времени, а не по дате. |
|||
5
Coldboy
24.06.15
✎
12:07
|
(3) таких документов не будет.
|
|||
6
Coldboy
24.06.15
✎
12:08
|
(4) а количество просто как сумму же брать и все
|
|||
7
Coldboy
24.06.15
✎
12:09
|
ВЫБРАТЬ
ПересчетТоваровТовары.Номенклатура, ПересчетТоваровТовары.Ссылка.Склад, МАКСИМУМ(ПересчетТоваровТовары.Ссылка.Дата) КАК Дата, ПересчетТоваровТовары.Ссылка.Магазин, СУММА(ПересчетТоваровТовары.КоличествоУпаковок) КАК КоличествоУпаковок, СУММА(ПересчетТоваровТовары.КоличествоУпаковокФакт) КАК КоличествоУпаковокФакт ИЗ Документ.ПересчетТоваров.Товары КАК ПересчетТоваровТовары ГДЕ ПересчетТоваровТовары.Ссылка.Проведен = ИСТИНА СГРУППИРОВАТЬ ПО ПересчетТоваровТовары.Ссылка.Склад, ПересчетТоваровТовары.Номенклатура, ПересчетТоваровТовары.Ссылка.Магазин |
|||
8
Coldboy
24.06.15
✎
12:09
|
(3) или будет проблема с данными?
|
|||
9
Coldboy
24.06.15
✎
12:10
|
точнее (4) был вопрос
|
|||
10
D_E_S_131
24.06.15
✎
12:14
|
Суть в том, что ты выбираешь свои документы ПересчетТоваров , получаешь из этой выборки с помощью группировки по Складу максимальные даты (и, если будут 23:59:59, максимальные Ссылки). Помещаешь это все во временную таблицу. Потом опять делаешь выборку документов, соединяя внутренним соединением с твоей ВТ по полям Склад, Дата (или Склад, Дата, Ссылка).
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |