|
v7: Чёрный запрос - как отфильтровать лишнее | ☑ | ||
---|---|---|---|---|
0
Злопчинский
02.11.16
✎
16:48
|
77, файловая
Есть Регистр.Заказы, оборотный есть запрос |Период с ДатаН; | |Заказ = Регистр.Заказы.Заказ; |Номенклатура = Регистр.Заказы.Номенклатура; |КолЗаказано = Регистр.Заказы.Заказано; |КолОтгружено = Регистр.Заказы.Отгружено; | |Функция Заказано = Сумма(КолЗаказано); |Функция НеОтгружено = Сумма(КолЗаказано-КолОтгружено); | |Группировка Номенклатура Без Упорядочивания Без Групп; |Условие(Заказ в ВыбДок); вот это: Функция Заказано = Сумма(КолЗаказано); введено потому что иначе результат запроса получается пустой. в результате в итоге запроса имеем все записи по заказу, в т.ч. и отгруженные полностью (это вообщем-то понятно): http://screencast.com/t/yfQT7hm3W вопрос: как сделать запрос, чтобы остались только те записи где НеОтгружено<>0 ?? |
|||
1
Волшебник
модератор
02.11.16
✎
16:49
|
Переходи на восьмёрку, там это реализовано
|
|||
2
aka AMIGO
02.11.16
✎
16:51
|
(0) зачем загромождать запрос? ИМХО - обработка в цикле решит проблему..
(1) ты забыл копирайт: © :) |
|||
4
aka AMIGO
02.11.16
✎
16:53
|
(0) извини, конец рабочего дня, туплю..
|
|||
5
aka AMIGO
02.11.16
✎
16:54
|
Еще раз ступлю:
|Условие((Заказ в ВыбДок) И (НеОтгружено<>0)); И - домой :) |
|||
6
Злопчинский
02.11.16
✎
16:57
|
(5) проверял?
|
|||
7
Злопчинский
02.11.16
✎
16:58
|
(1) не нужен пока мне этот ваш неповоротливый и глючный монстр
|
|||
8
Волшебник
модератор
02.11.16
✎
16:58
|
(7) Да, восьмёрка ещё сыровата...
|
|||
9
Джинн
02.11.16
✎
17:00
|
Применение Когда в функции не помогает? Забыл уже это окаменелое дерьмо мамонта :(
|
|||
10
Злопчинский
02.11.16
✎
17:00
|
(5) не прокатит, поле не определено
|
|||
11
Злопчинский
02.11.16
✎
17:02
|
(9) а куда и какое (по смыслу) когда впихивать?
Ёпрст, ты где...?! |
|||
12
Slypower
02.11.16
✎
17:02
|
(6) я проверят так: брал сумму из дока в запросе и пихал в условие: (сумма<>0). Обрабатывает. Только отдельным условием писал
|
|||
13
Slypower
02.11.16
✎
17:03
|
(11) пример
|Функция КонОстП = КонОст(Сумма)Когда((ПустоеЗначение(ДатаОплаты(КредДокумент)) = 0)и(ДатаОплаты(КредДокумент) < ДатаКонца));"; |
|||
14
Slypower
02.11.16
✎
17:05
|
|Функция НеОтгружено = Сумма(КолЗаказано-КолОтгружено)Когда(КолЗаказано<>КолОтгружено);
|
|||
15
Злопчинский
02.11.16
✎
17:07
|
(14) попробую...
|
|||
16
Ёпрст
02.11.16
✎
17:14
|
(0) тебе условие это нужно для группировки по номенклатуре ?
Не сделаешь просто так. В запросе нет havinga, там простое where будет для каждого движения регистра. Делай прямой запрос. и там - что угодно |
|||
17
Ёпрст
02.11.16
✎
17:16
|
даже
|Условие(Запрос.Неотгруженно<>0); не спасёт, ибо это условие вычисляется при каждом вычислении функции |
|||
18
Злопчинский
02.11.16
✎
17:20
|
(16) нет, просто для получения "признака" что заказ отгружен не полностью - для этого смотрю еслт ли неотгруженное
|
|||
19
Злопчинский
02.11.16
✎
17:20
|
(17) это я в самом начале выяснил
|
|||
20
Ёпрст
02.11.16
✎
17:21
|
в любом случая, в запросе не выйдет. Ну попробуй (17), так, на шару.
|
|||
21
Ёпрст
02.11.16
✎
17:21
|
а у тя там, примитивный select ...from group by having
|
|||
22
Ёпрст
02.11.16
✎
17:21
|
делай прямой запрос или фильтруй ТЗ.
|
|||
23
Ёпрст
02.11.16
✎
17:22
|
или ИТЗ
|
|||
24
Джинн
02.11.16
✎
17:22
|
(18) Структура регистра изначально неправильная. Достаточно было одного ресурса и приход/расход. Тогда КонОст по регистру выдал бы не отгруженные.
|
|||
25
Злопчинский
02.11.16
✎
17:22
|
(14) не взлетело
|
|||
26
Злопчинский
02.11.16
✎
17:25
|
(24) думал над этим в самом начале. но там еще ресурсы - запланировано, отобрано, промаркировано - все придется выводить в ноль, геморно имхо.
|
|||
27
Злопчинский
02.11.16
✎
17:25
|
(20) это я еще в самом начале попробовал...
|
|||
28
Злопчинский
02.11.16
✎
17:28
|
другой вопрос - нахрена в этом запросе из (0) обязательно должна быть
Функция Заказано = Сумма(КолЗаказано); ??? вопрос этот я уже подымал, судя по всему если нет "прямой" функции как эта - которая вычисляется "на сервере", то есть при извлечении данных - то получается нулевой запрос, так как "сложные" функции типа Функция НеОтгружено = Сумма(КолЗаказано-КолОтгружено); вычисляются уже в темпах над полученным итогом запроса... ??? |
|||
29
Злопчинский
02.11.16
✎
17:28
|
(22) так и пришлось в итоге...
|
|||
30
Ёпрст
02.11.16
✎
17:33
|
(28)в клюшках, при запросе к регистру всегда должна быть функция, к оборотному Сумма, к останковому одна из НачОст/КонОст/Приход/Расход .. иначе считать нечего. Просто так записей запрос не выгребает
|
|||
31
Ёпрст
02.11.16
✎
17:34
|
ибо там идёт group by всегда (ибо обязательна группировка в тексте запроса), соответственна нужна функция. Ну, как-то так.
|
|||
32
Злопчинский
02.11.16
✎
17:38
|
(30) эээ в этом запросе (0) если выкинуть функцию
Функция Заказано = Сумма(КолЗаказано); останется еще функция с Сумма - но при этом результат будет нулевой... условие наличия функции Сумма - не катит... ?? |
|||
33
Джинн
02.11.16
✎
17:39
|
(26) Одно измерение со статусом. И движения - ушло с одним-пришло с другим. В итоге в ноль выйдет.
|
|||
34
Ёпрст
02.11.16
✎
17:41
|
(32) нулевой, это какой? Когда что в запросе оставляешь ?
|
|||
35
Злопчинский
02.11.16
✎
17:42
|
(34) |Период с ДатаН;
| |Заказ = Регистр.Заказы.Заказ; |Номенклатура = Регистр.Заказы.Номенклатура; |КолЗаказано = Регистр.Заказы.Заказано; |КолОтгружено = Регистр.Заказы.Отгружено; | |Функция НеОтгружено = Сумма(КолЗаказано-КолОтгружено); | |Группировка Номенклатура Без Упорядочивания Без Групп; |Условие(Заказ в ВыбДок); дает нулевой итог, что неверно |
|||
36
Ёпрст
02.11.16
✎
17:46
|
И без условия Условие(Заказ в ВыбДок); тоже ?
Странно, должны быть данные |
|||
37
Ёпрст
02.11.16
✎
17:47
|
Хотя не помню я уже, можно в профайлере посмотреть, какой запрос будет. Там усё понятно, почему так или иначе :)
|
|||
38
Slypower
02.11.16
✎
17:48
|
(35) Заказ - это документ? Может нужно
Заказ = Регистр.Заказы.Заказ.ТекущийДокумент(); т.к. выбдок-явно реквизит Документ |
|||
39
Злопчинский
02.11.16
✎
17:51
|
(38) не, тут все норм
|
|||
40
Злопчинский
02.11.16
✎
17:53
|
(36) можно и услвие по документу заремить, нулевой итог.
|
|||
41
Злопчинский
02.11.16
✎
17:53
|
дбфная база, не скульная. фиг ты там чего профайлером посмотришь... (?)
|
|||
42
Кокос
02.11.16
✎
17:57
|
вдруг неожиданно понял что забыл 77 :)
|
|||
43
Злопчинский
02.11.16
✎
18:06
|
(42) это свойственно людям. все ошибаются.. ;-)
|
|||
44
Кокос
15.11.16
✎
10:07
|
(43) эх. а были времена )
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |