![]() |
![]() |
![]() |
|
Что не так в запросе. Серию по срок годности получить. | ☑ | ||
---|---|---|---|---|
0
zippygrill
09.10.13
✎
18:36
|
Пытаюсь получить для номенклатуры серию с наивысшей срок годности по оси времени. Сейчас результат выдает к одной номенклатуры из втОстатки все серии.
ВЫБРАТЬ ТоварыВНТТОстатки.Номенклатура, СУММА(ТоварыВНТТОстатки.КоличествоОстаток) КАК КоличествоОстаток ПОМЕСТИТЬ втОстатки ИЗ РегистрНакопления.ТоварыВНТТ.Остатки( &Граница, Склад = &Склад И ВЫБОР КОГДА &ФлажокТолькоНоменклатураУчетПоСериям ТОГДА Номенклатура.ВестиУчетПоСериям = ИСТИНА ИНАЧЕ ИСТИНА КОНЕЦ) КАК ТоварыВНТТОстатки СГРУППИРОВАТЬ ПО ТоварыВНТТОстатки.Номенклатура ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ СерииНоменклатуры.Ссылка КАК СерияНоменклатуры, МАКСИМУМ(СерииНоменклатуры.СрокГодности) КАК СрокГодности, СерииНоменклатуры.Владелец ПОМЕСТИТЬ втМаксСерия ИЗ Справочник.СерииНоменклатуры КАК СерииНоменклатуры ГДЕ СерииНоменклатуры.Владелец В (ВЫБРАТЬ втОстатки.Номенклатура ИЗ втОстатки КАК втОстатки) СГРУППИРОВАТЬ ПО СерииНоменклатуры.Ссылка, СерииНоменклатуры.Владелец ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ втОстатки.Номенклатура, СУММА(втОстатки.КоличествоОстаток) КАК КоличествоОстаток, втМаксСерия.СерияНоменклатуры ИЗ втОстатки КАК втОстатки ЛЕВОЕ СОЕДИНЕНИЕ втМаксСерия КАК втМаксСерия ПО втОстатки.Номенклатура = втМаксСерия.Владелец СГРУППИРОВАТЬ ПО втМаксСерия.СерияНоменклатуры, втОстатки.Номенклатура |
|||
1
zippygrill
09.10.13
✎
18:38
|
подозреваю что из за группировки по Владельцу и Ссылки во втором запросе
|
|||
2
Enders
09.10.13
✎
18:39
|
Пытаюсь получить для номенклатуры серию с наивысшей срок годности по оси времени. Сейчас результат выдает к одной номенклатуры из втОстатки все серии.
ТАк вы ж группируете по серии и номенклатуре Оо. Сгруппируйте по номенклатуре, получите макс срок годности. Потом к нему привяжите серию. А потом всё это дело к остаткам. |
|||
3
Rie
09.10.13
✎
18:40
|
(1) Правильно подозреваешь.
Выбери просто максимальный срок годности. Потом - соедини с сериями по владельцу и срокгодности = максимальный срок годности. |
|||
4
zippygrill
09.10.13
✎
18:58
|
не получается
ВЫБРАТЬ ТоварыВНТТОстатки.Номенклатура, СУММА(ТоварыВНТТОстатки.КоличествоОстаток) КАК КоличествоОстаток ПОМЕСТИТЬ втОстатки ИЗ РегистрНакопления.ТоварыВНТТ.Остатки( &Граница, Склад = &Склад И ВЫБОР КОГДА &ФлажокТолькоНоменклатураУчетПоСериям ТОГДА Номенклатура.ВестиУчетПоСериям = ИСТИНА ИНАЧЕ ИСТИНА КОНЕЦ) КАК ТоварыВНТТОстатки СГРУППИРОВАТЬ ПО ТоварыВНТТОстатки.Номенклатура ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ РАЗРЕШЕННЫЕ КОЛИЧЕСТВО(РАЗЛИЧНЫЕ СерииНоменклатуры.СрокГодности) КАК СрокГодности, СерииНоменклатуры.Ссылка КАК СерияНоменклатуры ПОМЕСТИТЬ вт1 ИЗ Справочник.СерииНоменклатуры КАК СерииНоменклатуры ГДЕ СерииНоменклатуры.Владелец В (ВЫБРАТЬ втОстатки.Номенклатура ИЗ втОстатки КАК втОстатки) СГРУППИРОВАТЬ ПО СерииНоменклатуры.Ссылка ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ РАЗРЕШЕННЫЕ СерииНоменклатуры.Ссылка КАК СерияНоменклатуры ПОМЕСТИТЬ вт2 ИЗ Справочник.СерииНоменклатуры КАК СерииНоменклатуры ЛЕВОЕ СОЕДИНЕНИЕ вт1 КАК вт1 ПО СерииНоменклатуры.Ссылка = вт1.СерияНоменклатуры И СерииНоменклатуры.СрокГодности = вт1.СрокГодности ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ втОстатки.Номенклатура, вт2.СерияНоменклатуры, втОстатки.КоличествоОстаток ИЗ втОстатки КАК втОстатки ЛЕВОЕ СОЕДИНЕНИЕ вт2 КАК вт2 ПО втОстатки.Номенклатура = вт2.СерияНоменклатуры.Владелец |
|||
5
viktor_vv
09.10.13
✎
19:10
|
Тут у тебя совсем не срок годности
КОЛИЧЕСТВО(РАЗЛИЧНЫЕ СерииНоменклатуры.СрокГодности) КАК СрокГодности, |
|||
6
zippygrill
09.10.13
✎
19:11
|
(5) да я заметил исправляю
|
|||
7
Rie
09.10.13
✎
19:12
|
(4)
ВЫБРАТЬ СерииНоменклатуры.Владелец КАК Номенклатура , МАКСИМУМ(СерииНоменклатуры.СрокГодности) КАК МаксСрокГодности ПОМЕСТИТЬ МаксСрокиГодности ИЗ Справочник.СерииНоменклатуры КАК СерииНоменклатуры СГРУППИРОВАТЬ ПО СерииНоменклатуры.Владелец; ВЫБРАТЬ СерииНоменклатуры.Ссылка ПОМЕСТИТЬ СерииСМаксСрокомГодности ИЗ Справочник.СерииНоменклатуры КАК СерииНоменклатуры СОЕДИНЕНИЕ МаксСрокиГодности ПО СерииНоменклатуры.СрокГодности = МаксСрокиГодности.МаксСрокГодности М СерииНоменклатуры.Владелец = МаксСрокиГодности.Номенклатура |
|||
8
zippygrill
09.10.13
✎
19:12
|
ВЫБРАТЬ
ТоварыВНТТОстатки.Номенклатура, СУММА(ТоварыВНТТОстатки.КоличествоОстаток) КАК КоличествоОстаток ПОМЕСТИТЬ втОстатки ИЗ РегистрНакопления.ТоварыВНТТ.Остатки( &Граница, Склад = &Склад И ВЫБОР КОГДА &ФлажокТолькоНоменклатураУчетПоСериям ТОГДА Номенклатура.ВестиУчетПоСериям = ИСТИНА ИНАЧЕ ИСТИНА КОНЕЦ) КАК ТоварыВНТТОстатки СГРУППИРОВАТЬ ПО ТоварыВНТТОстатки.Номенклатура ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ СерииНоменклатуры.Владелец, МАКСИМУМ(СерииНоменклатуры.СрокГодности) КАК СрокГодности ПОМЕСТИТЬ втМаксСрокГодности ИЗ Справочник.СерииНоменклатуры КАК СерииНоменклатуры ГДЕ СерииНоменклатуры.Владелец В (ВЫБРАТЬ втОстатки.Номенклатура ИЗ втОстатки КАК втОстатки) СГРУППИРОВАТЬ ПО СерииНоменклатуры.Владелец ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ СерииНоменклатуры.Ссылка КАК СерияНоменклатуры ПОМЕСТИТЬ втСерия ИЗ втМаксСрокГодности КАК втМаксСрокГодности ЛЕВОЕ СОЕДИНЕНИЕ Справочник.СерииНоменклатуры КАК СерииНоменклатуры ПО втМаксСрокГодности.Владелец = СерииНоменклатуры.Владелец И втМаксСрокГодности.СрокГодности = СерииНоменклатуры.СрокГодности ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ втОстатки.Номенклатура, втСерия.СерияНоменклатуры, СУММА(втОстатки.КоличествоОстаток) КАК КоличествоОстаток ИЗ втОстатки КАК втОстатки, втСерия КАК втСерия СГРУППИРОВАТЬ ПО втСерия.СерияНоменклатуры, втОстатки.Номенклатура |
|||
9
zippygrill
09.10.13
✎
19:18
|
эх близко был блин.
|
|||
10
zippygrill
09.10.13
✎
19:18
|
спасибо (7)
|
|||
11
zippygrill
09.10.13
✎
19:41
|
дублируется номенклатура.
ВЫБРАТЬ ТоварыВНТТОстатки.Номенклатура, СУММА(ТоварыВНТТОстатки.КоличествоОстаток) КАК КоличествоОстаток ПОМЕСТИТЬ втОстатки ИЗ РегистрНакопления.ТоварыВНТТ.Остатки( &Граница, Склад = &Склад И ВЫБОР КОГДА &ФлажокТолькоНоменклатураУчетПоСериям ТОГДА Номенклатура.ВестиУчетПоСериям = ИСТИНА ИНАЧЕ ИСТИНА КОНЕЦ) КАК ТоварыВНТТОстатки СГРУППИРОВАТЬ ПО ТоварыВНТТОстатки.Номенклатура ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ СерииНоменклатуры.Владелец, МАКСИМУМ(СерииНоменклатуры.СрокГодности) КАК СрокГодности ПОМЕСТИТЬ втМаксСрокГодности ИЗ Справочник.СерииНоменклатуры КАК СерииНоменклатуры СГРУППИРОВАТЬ ПО СерииНоменклатуры.Владелец ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ СерииНоменклатуры.Ссылка КАК СерияНоменклатуры, СерииНоменклатуры.Владелец ПОМЕСТИТЬ втСерииСМаксСрокомГодности ИЗ Справочник.СерииНоменклатуры КАК СерииНоменклатуры ЛЕВОЕ СОЕДИНЕНИЕ втМаксСрокГодности КАК втМаксСрокГодности ПО СерииНоменклатуры.Владелец = втМаксСрокГодности.Владелец И СерииНоменклатуры.СрокГодности = втМаксСрокГодности.СрокГодности ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ втОстатки.Номенклатура, втСерииСМаксСрокомГодности.СерияНоменклатуры, СУММА(втОстатки.КоличествоОстаток) КАК КоличествоОстаток ИЗ втОстатки КАК втОстатки ЛЕВОЕ СОЕДИНЕНИЕ втСерииСМаксСрокомГодности КАК втСерииСМаксСрокомГодности ПО втОстатки.Номенклатура = втСерииСМаксСрокомГодности.СерияНоменклатуры.Владелец СГРУППИРОВАТЬ ПО втОстатки.Номенклатура, втСерииСМаксСрокомГодности.СерияНоменклатуры УПОРЯДОЧИТЬ ПО втОстатки.Номенклатура.Наименование |
|||
12
zippygrill
09.10.13
✎
19:43
|
может быть из за того что не везде поле СрокГодности заполнен
|
|||
13
Rie
09.10.13
✎
19:45
|
(12) Либо у одной номенклатуры есть несколько серий с одним и тем же сроком годности. Но тут уж надо определиться - какую серию (по каким признакам) в таком случае выбирать.
|
|||
14
viktor_vv
09.10.13
✎
20:22
|
(12) Вот здесь
ИЗ Справочник.СерииНоменклатуры КАК СерииНоменклатуры ЛЕВОЕ СОЕДИНЕНИЕ втМаксСрокГодности КАК втМаксСрокГодности ПО СерииНоменклатуры.Владелец = втМаксСрокГодности.Владелец И СерииНоменклатуры.СрокГодности = втМаксСрокГодности.СрокГодности вместо левого, внутреннее соединение плюс (13). |
|||
15
viktor_vv
09.10.13
✎
20:23
|
(14) Как вариант
ВЫБРАТЬ Максимум(СерииНоменклатуры.Ссылка) КАК СерияНоменклатуры, СерииНоменклатуры.Владелец ПОМЕСТИТЬ втСерииСМаксСрокомГодности ИЗ Справочник.СерииНоменклатуры КАК СерииНоменклатуры Внутреннее СОЕДИНЕНИЕ втМаксСрокГодности КАК втМаксСрокГодности ПО СерииНоменклатуры.Владелец = втМаксСрокГодности.Владелец И СерииНоменклатуры.СрокГодности = втМаксСрокГодности.СрокГодности Сгруппировать ПО СерииНоменклатуры.Владелец ; |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |