|
Как отобрать по последнему регистратору??? | ☑ | ||
---|---|---|---|---|
0
axell
04.06.12
✎
15:52
|
ВЫБРАТЬ
ПланыЗакупокОбороты.Номенклатура КАК Номенклатура, ПланыЗакупокОбороты.КоличествоОборот КАК КоличествоОборот, ПланыЗакупокОбороты.СтоимостьОборот КАК СтоимостьОборот, МАКСИМУМ(ПланыЗакупокОбороты.Регистратор.Дата) КАК РегистраторДата, ПланыЗакупокОбороты.Регистратор.Ссылка КАК РегистраторСсылка ИЗ РегистрНакопления.ПланыЗакупок.Обороты( &НачПериода, &КонПериода, Регистратор, Проект = &Проект И Сценарий = &Сценарий) КАК ПланыЗакупокОбороты СГРУППИРОВАТЬ ПО ПланыЗакупокОбороты.Номенклатура, ПланыЗакупокОбороты.КоличествоОборот, ПланыЗакупокОбороты.СтоимостьОборот, ПланыЗакупокОбороты.Регистратор.Ссылка Ребята помогите с запросом никак не могу выбрать данные из регистра накопления план закупок по последнему регистратору! |
|||
1
sapphire
04.06.12
✎
15:53
|
(0) Насильник :)
|
|||
2
LouRENs
04.06.12
✎
15:55
|
максимум(дата) в группировке ?
|
|||
3
sapphire
04.06.12
✎
15:55
|
+(1) Бред редкостный в (0) :)))
Что именно надо получить на выходе? последний регистратор с его оборотами по заданному критерию? |
|||
4
axell
04.06.12
✎
15:58
|
(2)Да
(3)То что упало в регистр последним регистратором Ребята ситуация следующая в месяце заводится док. план закупок н-количество. Каждый последний является корректирующим, т.е актуальным. Вот и нужно на выходе получить номенклатуру и количество по последнему регистратору |
|||
5
shuhard
04.06.12
✎
16:06
|
(4)решение задачи зависит от того, могут ли быть в одну секунду два регистратора
если нет - сначала найди максимальную дату а по ней возьми движения регистратора |
|||
6
LouRENs
04.06.12
✎
16:09
|
ВЫБРАТЬ
ПланыЗакупокОбороты.Регистратор.Ссылка, ПланыЗакупокОбороты.Регистратор.Дата, ПланыЗакупокОбороты.ХарактеристикаНоменклатуры, ПланыЗакупокОбороты.Номенклатура, ПланыЗакупокОбороты.КоличествоОборот, ПланыЗакупокОбороты.СтоимостьОборот ИЗ РегистрНакопления.ПланыЗакупок.Обороты(, , Регистратор, ) КАК ПланыЗакупокОбороты ВНУТРЕННЕЕ СОЕДИНЕНИЕ (ВЫБРАТЬ ПланыЗакупокОбороты.Номенклатура КАК Номенклатура, ПланыЗакупокОбороты.КоличествоОборот КАК КоличествоОборот, ПланыЗакупокОбороты.СтоимостьОборот КАК СтоимостьОборот, МАКСИМУМ(ПланыЗакупокОбороты.Регистратор.Дата) КАК РегистраторДата, ПланыЗакупокОбороты.Регистратор.Ссылка КАК РегистраторСсылка ИЗ РегистрНакопления.ПланыЗакупок.Обороты( &НачПериода, &КонПериода, Регистратор, Проект = &Проект И Сценарий = &Сценарий) КАК ПланыЗакупокОбороты СГРУППИРОВАТЬ ПО ПланыЗакупокОбороты.Номенклатура, ПланыЗакупокОбороты.КоличествоОборот, ПланыЗакупокОбороты.СтоимостьОборот, ПланыЗакупокОбороты.Регистратор.Ссылка) КАК ВложенныйЗапрос ПО ПланыЗакупокОбороты.Регистратор = ВложенныйЗапрос.РегистраторСсылка |
|||
7
shuhard
04.06.12
✎
16:14
|
(6)[ВЫБРАТЬ
ПланыЗакупокОбороты.Номенклатура КАК Номенклатура, ПланыЗакупокОбороты.КоличествоОборот КАК КоличествоОборот, ПланыЗакупокОбороты.СтоимостьОборот КАК СтоимостьОборот, МАКСИМУМ(ПланыЗакупокОбороты.Регистратор.Дата) КАК РегистраторДата, ПланыЗакупокОбороты.Регистратор.Ссылка КАК РегистраторСсылка ИЗ РегистрНакопления.ПланыЗакупок.Обороты( &НачПериода, &КонПериода, Регистратор, Проект = &Проект И Сценарий = &Сценарий) КАК ПланыЗакупокОбороты СГРУППИРОВАТЬ ПО ПланыЗакупокОбороты.Номенклатура, ПланыЗакупокОбороты.КоличествоОборот, ПланыЗакупокОбороты.СтоимостьОборот, ПланыЗакупокОбороты.Регистратор.Ссылка] не взлетит |
|||
8
axell
04.06.12
✎
16:21
|
(6)Антон все равно нихера не понял, ну да я осел.... то ли соединение выводится на одну номенклатуру большое количество строк
(7)а как взлетит??? |
|||
9
shuhard
04.06.12
✎
16:22
|
(8) ещё раз:
в одну секунду может быть два регистратора или нет ? |
|||
10
axell
04.06.12
✎
16:24
|
(9)Нет
|
|||
11
shuhard
04.06.12
✎
16:28
|
(10) ВЫБРАТЬ
МАКСИМУМ(ПланыЗакупокОбороты.Регистратор.Дата) КАК РегистраторДата ПОМЕСТИТЬ ДатаПоследнегоРегистратора ИЗ РегистрНакопления.ПланыЗакупок.Обороты(, , Регистратор, ) КАК ПланыЗакупокОбороты ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ПланыЗакупокОбороты.Номенклатура, ПланыЗакупокОбороты.КоличествоОборот, ПланыЗакупокОбороты.СтоимостьОборот ИЗ РегистрНакопления.ПланыЗакупок.Обороты(, , Регистратор, ) КАК ПланыЗакупокОбороты ВНУТРЕННЕЕ СОЕДИНЕНИЕ ДатаПоследнегоРегистратора КАК ДатаПоследнегоРегистратора ПО ПланыЗакупокОбороты.Регистратор.Дата = ДатаПоследнегоРегистратора.РегистраторДата |
|||
12
shuhard
04.06.12
✎
16:33
|
(11) если есть в одну секунду, то можно по номеру отсортировать, хотя это явная условность:
ВЫБРАТЬ МАКСИМУМ(ПланыЗакупокОбороты.Регистратор.Дата) КАК РегистраторДата ПОМЕСТИТЬ ДатаПоследнегоРегистратора ИЗ РегистрНакопления.ПланыЗакупок.Обороты(, , Регистратор, ) КАК ПланыЗакупокОбороты ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ПЕРВЫЕ 1 ПланыЗакупокОбороты.Регистратор ПОМЕСТИТЬ КрайнийРегистратор ИЗ РегистрНакопления.ПланыЗакупок.Обороты(, , Регистратор, ) КАК ПланыЗакупокОбороты ВНУТРЕННЕЕ СОЕДИНЕНИЕ ДатаПоследнегоРегистратора КАК ДатаПоследнегоРегистратора ПО ПланыЗакупокОбороты.Регистратор.Дата = ДатаПоследнегоРегистратора.РегистраторДата УПОРЯДОЧИТЬ ПО ПланыЗакупокОбороты.Регистратор.Номер УБЫВ ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ПланыЗакупокОбороты.Регистратор, ПланыЗакупокОбороты.Номенклатура, ПланыЗакупокОбороты.КоличествоОборот, ПланыЗакупокОбороты.СтоимостьОборот ИЗ РегистрНакопления.ПланыЗакупок.Обороты(, , Регистратор, ) КАК ПланыЗакупокОбороты ВНУТРЕННЕЕ СОЕДИНЕНИЕ КрайнийРегистратор КАК КрайнийРегистратор ПО ПланыЗакупокОбороты.Регистратор = КрайнийРегистратор.Регистратор |
|||
13
sapphire
04.06.12
✎
16:39
|
(10) Врешь, может
|
|||
14
sapphire
04.06.12
✎
16:42
|
(9) Что им мешает быть одновременно? Регистратор - это измерение. Стало быть, от периода не зависит.
|
|||
15
shuhard
04.06.12
✎
16:44
|
(14) с точки зрения УПП мешать может дописка
с точки зрения бизнес-процессов - административный регламент случай сферического коня изучен в (12) |
|||
16
sapphire
04.06.12
✎
16:45
|
(0) У тебя регистратор (тип документа) ТОЛЬКО один, или еще есть?
|
|||
17
acsent
04.06.12
✎
16:45
|
(11) зачем тут использовать вт обороты?
|
|||
18
acsent
04.06.12
✎
16:45
|
и если вдруг не бывает движений другой датой, то лучше брать макс(период)
|
|||
19
shuhard
04.06.12
✎
16:46
|
(17) чтобы не проверять возможность движений не проведённого документа
|
|||
20
sapphire
04.06.12
✎
16:47
|
(12) Можно и без времянок обойтись и уж тем паче, незачем использовать виртуальную таблицу
|
|||
21
shuhard
04.06.12
✎
16:47
|
(18) чей период - плана ?
не годится |
|||
22
sapphire
04.06.12
✎
16:47
|
(18) согласен с (21).
|
|||
23
sapphire
04.06.12
✎
16:48
|
(19) Если такое имеет место быть то проще наложить собственные условия, нежели гнать в виртуалку.
|
|||
24
shuhard
04.06.12
✎
16:51
|
(23) тебе с шашечками или ехать =) ?
|
|||
25
ILM
гуру
04.06.12
✎
16:54
|
(0) В постановке у вас батенька ошибочка.
[Каждый последний регистратор корректирующий] - То есть вы получите данные только по последнему документу? Тогда у вас регистр в 0 не сведется. Корректировка должна быть с минусом предыдущего, и плюсом последнего. Тогда текущие остатки регистра будут планом. А иначе разные номенклатуры введенные разными документами, дадут разную картину плана и тогда в (12) придется отбирать все последние регистраторы за период, и номенклатуру выбирать не из одного последнего регистратора, а из всех разных последних регистраторов. Если правильно вводить корректировку, то текущий остаток и будет последним планом. |
|||
26
axell
05.06.12
✎
09:30
|
(23)Спасибо за запрос, ну вот в чем беда запрос получает последний регистратор в регистре и по нему смотрит то что упало в регистр, но ведь есть за период и другая номенклатура для которой есть свой последний регистратор в периоде.
|
|||
27
hhhh
05.06.12
✎
10:16
|
(26) ну там так и есть. Для каждой номенклатуры свой последний регистратор.
|
|||
28
axell
05.06.12
✎
10:39
|
(27)ты про (12)???
|
|||
29
shuhard
05.06.12
✎
12:33
|
(26) ну и что мешает добавить группировку по номенклатуре ?
|
|||
30
axell
05.06.12
✎
13:35
|
(29)Я окончательный баран и лечению не поддаюсь смотри
http://www.screencast.com/t/Wxc8wIOmuKEA результат запроса т.е запрос в самом начале ВЫБРАТЬ МАКСИМУМ(ПланыЗакупокОбороты.Регистратор.Дата) КАК РегистраторДата ПОМЕСТИТЬ ДатаПоследнегоРегистратора ИЗ РегистрНакопления.ПланыЗакупок.Обороты( , , Регистратор, Сценарий = &Сценарий И Проект = &Проект) КАК ПланыЗакупокОбороты ; получаем самый последний по дате регистратор потом ВЫБРАТЬ ПЕРВЫЕ 1 ПланыЗакупокОбороты.Регистратор ПОМЕСТИТЬ КрайнийРегистратор ИЗ РегистрНакопления.ПланыЗакупок.Обороты(, , Регистратор, ) КАК ПланыЗакупокОбороты ВНУТРЕННЕЕ СОЕДИНЕНИЕ ДатаПоследнегоРегистратора КАК ДатаПоследнегоРегистратора ПО ПланыЗакупокОбороты.Регистратор.Дата = ДатаПоследнегоРегистратора.РегистраторДата УПОРЯДОЧИТЬ ПО ПланыЗакупокОбороты.Регистратор.Номер УБЫВ получаем на него ссылку и в заключении выбираем все из регистра по ссылке последнего регистратора ВЫБРАТЬ ПланыЗакупокОбороты.Регистратор, ПланыЗакупокОбороты.Номенклатура, ПланыЗакупокОбороты.КоличествоОборот, ПланыЗакупокОбороты.СтоимостьОборот ИЗ РегистрНакопления.ПланыЗакупок.Обороты(, , Регистратор, ) КАК ПланыЗакупокОбороты ВНУТРЕННЕЕ СОЕДИНЕНИЕ КрайнийРегистратор КАК КрайнийРегистратор ПО ПланыЗакупокОбороты.Регистратор = КрайнийРегистратор.Регистратор А как методом (29) изменить я так и не понял |
|||
31
shuhard
05.06.12
✎
14:40
|
(30) ну и что мешает добавить группировку по номенклатуре:
ВЫБРАТЬ МАКСИМУМ(ПланыЗакупокОбороты.Регистратор.Дата) КАК РегистраторДата, ПланыЗакупокОбороты.Номенклатура ПОМЕСТИТЬ ДатаПоследнегоРегистратора ИЗ РегистрНакопления.ПланыЗакупок.Обороты(, , Регистратор, ) КАК ПланыЗакупокОбороты СГРУППИРОВАТЬ ПО ПланыЗакупокОбороты.Номенклатура ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ПланыЗакупокОбороты.Регистратор, ДатаПоследнегоРегистратора.РегистраторДата, ПланыЗакупокОбороты.Номенклатура, ПланыЗакупокОбороты.КоличествоОборот ИЗ РегистрНакопления.ПланыЗакупок.Обороты(, , Регистратор, ) КАК ПланыЗакупокОбороты ВНУТРЕННЕЕ СОЕДИНЕНИЕ ДатаПоследнегоРегистратора КАК ДатаПоследнегоРегистратора ПО ПланыЗакупокОбороты.Регистратор.Дата = ДатаПоследнегоРегистратора.РегистраторДата И ПланыЗакупокОбороты.Номенклатура = ДатаПоследнегоРегистратора.Номенклатура |
|||
32
axell
05.06.12
✎
16:24
|
Ребята всем большое спасибо! Вразумили!
(31)Персонально большое спасибо! Теперь все стало понятнее и яснее! |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |