|
"ВЫБОР КОГДА" что не так написал? | ☑ | ||
---|---|---|---|---|
0
Vladius
11.10.11
✎
14:04
|
Когда разность между датами 0 в отчете должно отображаться слово "Разовая". Вроде написал все как надо а выводится пустое поле, где ошибочка?
ВЫБРАТЬ ВЫБОР КОГДА РАЗНОСТЬДАТ(МИНИМУМ(НАЧАЛОПЕРИОДА(Продажи.Регистратор.Дата, ДЕНЬ)), МАКСИМУМ(НАЧАЛОПЕРИОДА(Продажи.Регистратор.Дата, ДЕНЬ)), ДЕНЬ) = 0 ТОГДА "Разовая" ИНАЧЕ РАЗНОСТЬДАТ(МИНИМУМ(НАЧАЛОПЕРИОДА(Продажи.Регистратор.Дата, ДЕНЬ)), МАКСИМУМ(НАЧАЛОПЕРИОДА(Продажи.Регистратор.Дата, ДЕНЬ)), ДЕНЬ) / КОЛИЧЕСТВО(Продажи.Количество) КОНЕЦ КАК Интервал, Продажи.Номенклатура, СУММА(Продажи.Количество) КАК Количество, СУММА(Продажи.Себестоимость) КАК Себестоимость, СУММА(Продажи.Продажа) КАК Продажа, СУММА(Продажи.Продажа - Продажи.Себестоимость) КАК Прибыль, ДЕНЬ(&КонецПериода) - ДЕНЬ(МАКСИМУМ(Продажи.Регистратор.Дата)) КАК Срок ИЗ РегистрНакопления.Продажи КАК Продажи СГРУППИРОВАТЬ ПО Продажи.Номенклатура, Продажи.Количество |
|||
1
Mort
11.10.11
✎
14:07
|
Потому что твои манипуляции выполняются до группировки.
|
|||
2
Maxus43
11.10.11
✎
14:09
|
РАЗНОСТЬДАТ(МИНИМУМ(НАЧАЛОПЕРИОДА(Продажи.Регистратор.Дата, ДЕНЬ)), МАКСИМУМ(НАЧАЛОПЕРИОДА(Продажи.Регистратор.Дата, ДЕНЬ)), ДЕНЬ)
да и эта хрень всегда одно и тоже вернёт... где логика то в условии? |
|||
3
Vladius
11.10.11
✎
14:20
|
(2) Как одно и тоже....где ошибка тогда?
|
|||
4
Maxus43
11.10.11
✎
14:27
|
разность в днях у 01.01.2010 00:00:00 и 01.01.2010 23:59:59 какая будет?
|
|||
5
Maxus43
11.10.11
✎
14:27
|
или смысл условия какой вобще?
|
|||
6
АНДР
11.10.11
✎
14:32
|
Автор, преобразуй результат Когда к одному возвращаемому типу.
ЗЫ Ну вот такие у него условия. Меня лично больше смущает группировка по количеству. |
|||
7
Синий зуб
11.10.11
✎
14:34
|
Честно говоря смысл функций МИНИМУМ и МАКСИМУМ в данном контексте совершенно непонятен.
|
|||
8
y22-k
11.10.11
✎
14:37
|
(0) автор что ты хочешь увидеть в отчете скажи своими словами
|
|||
9
АНДР
11.10.11
✎
14:38
|
А что не понятного? Номенклатура-то у автора не уникальна.
|
|||
10
Maxus43
11.10.11
✎
14:40
|
хорош в телепатов играть) автор ушёл
|
|||
11
Синий зуб
11.10.11
✎
14:41
|
(9) Типа по каждой номенклатуре хочет найти разность в датах между 1 и последним движением?
|
|||
12
Vladius
11.10.11
✎
14:43
|
Я беру МИНИМУМ(НАЧАЛОПЕРИОДА(Продажи.Регистратор.Дата, ДЕНЬ)) дата первой отгрузки МАКСИМУМ(НАЧАЛОПЕРИОДА(Продажи.Регистратор.Дата, ДЕНЬ)) дата последней отгрузки. Ну и получаю разность между датами
|
|||
13
Синий зуб
11.10.11
✎
14:50
|
Я бы все поля из конструкции ВЫБОР КОГДА вывел бы отдельно и посмотрел, че не так получается.
|
|||
14
Vladius
11.10.11
✎
14:56
|
Что то я совсем запутался (( И дата последней отгрузки у меня неправильно выводится. Ладно буду заново переписывать код, напортачил.
|
|||
15
АНДР
11.10.11
✎
15:03
|
Убери группировку по количеству.
Замени ИНАЧЕ РАЗНОСТЬДАТ на ИНАЧЕ "" + РАЗНОСТЬДАТ |
|||
16
Vladius
11.10.11
✎
15:07
|
(15) не понятно что значит ИНАЧЕ "" + РАЗНОСТЬДАТ
|
|||
17
АНДР
11.10.11
✎
15:21
|
Принудительное приведение числа к строке. При формировании результата у тебя в первых записях получаются числа и сервер формирует колонку числового типа. Когда появляется строковое значение, оно уже не может быть вставлено в результирующую таблицу.
Кстати, база SQLная? ЗЫ Выразить использовать нельзя, т.к. функция применяется уже к собранному набору данных. |
|||
18
Vladius
11.10.11
✎
15:42
|
(17) База файловая
|
|||
19
catena
11.10.11
✎
15:43
|
Не правильно используешь мин/макс. Ты сперва сделать сгруппированную выборку, а потом уже из нее бери мин/макс.
|
|||
20
Vladius
11.10.11
✎
16:12
|
Теперь все работает! Сделал вот так:
ВЫБРАТЬ ПродажиОбороты.Номенклатура, СУММА(ПродажиОбороты.КоличествоОборот) КАК Количество, СУММА(ПродажиОбороты.СебестоимостьОборот) КАК Себестоимость, СУММА(ПродажиОбороты.ПродажаОборот) КАК СуммаПродаж, СУММА(ПродажиОбороты.ПродажаОборот - ПродажиОбороты.СебестоимостьОборот) КАК Прибыль, ВЫБОР КОГДА КОЛИЧЕСТВО(ПродажиОбороты.Регистратор) = 1 ТОГДА "Разовая" ИНАЧЕ РАЗНОСТЬДАТ(МИНИМУМ(ПродажиОбороты.Регистратор.Дата), МАКСИМУМ(ПродажиОбороты.Регистратор.Дата), ДЕНЬ) / КОЛИЧЕСТВО(ПродажиОбороты.Регистратор) КОНЕЦ КАК Интервал, РАЗНОСТЬДАТ(МАКСИМУМ(ПродажиОбороты.Регистратор.Дата), &КонецПериода, ДЕНЬ) КАК Срок ИЗ РегистрНакопления.Продажи.Обороты(, , Регистратор, ) КАК ПродажиОбороты СГРУППИРОВАТЬ ПО ПродажиОбороты.Номенклатура |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |