|
v8: Запрос выдает ошибку.. | ☑ | ||
---|---|---|---|---|
0
goleaff2006
01.10.12
✎
07:29
|
Ошибка при вызове метода контекста (Выполнить): {(77, 8)}: Поле не входит в группу "ЧекККМТовары.Ссылка.ВидОперации"
КОГДА <<?>>ЧекККМТовары.Ссылка.ВидОперации = &ВидОперации ВЫБРАТЬ |ЕСТЬNULL(СубЗапрос.Подразделение, Табели.Подразделение) КАК Подразделение, |ЕСТЬNULL(СубЗапрос.ДатаЧек, Табели.Дата) КАК Дата, |ЕСТЬNULL(Табели.Поле1, 0) КАК ОтработанныеЧасы, |ЕСТЬNULL(СубЗапрос.Сумма, 0) КАК Сумма, |ЕСТЬNULL(СубЗапрос.КоличествоТоваров, 0) КАК КоличествоТоваров, |ЕСТЬNULL(СубЗапрос.СуммаСкидки, 0) КАК СуммаСкидки, |ЕСТЬNULL(СубЗапрос.КоличествоЧеков, 0) КАК КоличествоЧеков, |ВЫБОР | КОГДА Табели.Поле1 = 0 | ТОГДА 0 | ИНАЧЕ СубЗапрос.Сумма / Табели.Поле1 |КОНЕЦ КАК ПродажиВЧас, |ВЫБОР | КОГДА Табели.Поле1 = 0 | ТОГДА 0 | ИНАЧЕ СубЗапрос.КоличествоТоваров / Табели.Поле1 |КОНЕЦ КАК ПроданныхТоваровВЧас, |ВЫБОР | КОГДА Табели.Поле1 = 0 | ТОГДА 0 | ИНАЧЕ СубЗапрос.СуммаСкидки / Табели.Поле1 |КОНЕЦ КАК ПродажиСоСкидкойВЧас, |ВЫБОР | КОГДА Табели.Поле1 = 0 | ТОГДА 0 | ИНАЧЕ СубЗапрос.КоличествоЧеков / Табели.Поле1 |КОНЕЦ КАК ЧековВЧас, |ВЫБОР | КОГДА СубЗапрос.Сумма = 0 | ТОГДА 0 | ИНАЧЕ СубЗапрос.Сумма / СубЗапрос.КоличествоЧеков |КОНЕЦ КАК СреднийЧек, |ВЫБОР | КОГДА СубЗапрос.Сумма = 0 | ТОГДА 0 | ИНАЧЕ СубЗапрос.КоличествоТоваров / СубЗапрос.КоличествоЧеков |КОНЕЦ КАК ПозицийВЧеке, |ВЫБОР | КОГДА СубЗапрос.КоличествоТоваров = 0 | ТОГДА 0 | ИНАЧЕ СубЗапрос.Сумма / СубЗапрос.КоличествоТоваров |КОНЕЦ КАК СредняяСтоимостьТовара, |ЕСТЬNULL(СубЗапрос.Ответственный, Табели.Сотрудник) КАК Ответственный, |Табели.Подразделение КАК Подразделение1, |Табели.Дата КАК Дата1, |Табели.Сотрудник |ИЗ | (ВЫБРАТЬ | Чеки.Ответственный КАК Ответственный, | Чеки.Подразделение КАК Подразделение, | СУММА(Чеки.Сумма) КАК Сумма, | СУММА(Чеки.КоличествоТоваров) КАК КоличествоТоваров, | СУММА(Чеки.СуммаСкидки) КАК СуммаСкидки, | СУММА(Чеки.КоличествоЧеков) КАК КоличествоЧеков, | Чеки.ДатаЧек КАК ДатаЧек | ИЗ | (ВЫБРАТЬ | ЧекККМТовары.Ссылка.Ответственный КАК Ответственный, | ЧекККМТовары.Ссылка.Склад.Подразделение КАК Подразделение, | СУММА(ВЫБОР | КОГДА ЧекККМТовары.Ссылка.ВидОперации = &ВидОперации | ТОГДА ЧекККМТовары.Сумма | ИНАЧЕ -ЧекККМТовары.Сумма | КОНЕЦ) КАК Сумма, | СУММА(ВЫБОР | КОГДА ЧекККМТовары.Ссылка.ВидОперации = &ВидОперации | ТОГДА ЧекККМТовары.Количество | ИНАЧЕ -ЧекККМТовары.Количество | КОНЕЦ) КАК КоличествоТоваров, | СУММА(ВЫБОР | КОГДА ЧекККМТовары.Ссылка.ВидОперации = &ВидОперации | ТОГДА ЧекККМТовары.ПроцентСкидкиНаценки | ИНАЧЕ -ЧекККМТовары.ПроцентСкидкиНаценки | КОНЕЦ) КАК СуммаСкидки, | ВЫБОР | КОГДА ЧекККМТовары.Ссылка.ВидОперации = &ВидОперации | ТОГДА КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ЧекККМТовары.Ссылка) | ИНАЧЕ -КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ЧекККМТовары.Ссылка) |КОНЕЦ |КАК КоличествоЧеков, | КОНЕЦПЕРИОДА(ЧекККМТовары.Ссылка.Дата, ДЕНЬ) КАК ДатаЧек | ИЗ | Документ.ЧекККМ.Товары КАК ЧекККМТовары | ГДЕ | ЧекККМТовары.Ссылка.Дата МЕЖДУ &ДатаНач И &ДатаКон " | И ЧекККМТовары.Ссылка.ЧекПробитНаККМ = ИСТИНА | | СГРУППИРОВАТЬ ПО | ЧекККМТовары.Ссылка.Ответственный, | ЧекККМТовары.Ссылка.Склад.Подразделение, | КОНЕЦПЕРИОДА(ЧекККМТовары.Ссылка.Дата, ДЕНЬ) | ) КАК Чеки | | СГРУППИРОВАТЬ ПО | Чеки.Ответственный, | Чеки.Подразделение, | Чеки.ДатаЧек) КАК СубЗапрос |ПОЛНОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ | Табель.Сотрудник КАК Сотрудник, | КОНЕЦПЕРИОДА(Табель.Дата, ДЕНЬ) КАК Дата, | СУММА(РАЗНОСТЬДАТ(Табель.ВремяВхода, Табель.ВремяВыхода, ЧАС)) КАК Поле1, | Табель.Подразделение КАК Подразделение | ИЗ | РегистрСведений.Табель КАК Табель | ГДЕ | Табель.Дата МЕЖДУ &ДатаНач И &ДатаКон | И Табель.Сотрудник <> &Сотрудник | И Табель.Подразделение В ИЕРАРХИИ(&Подразделение) | | СГРУППИРОВАТЬ ПО | Табель.Сотрудник, | КОНЕЦПЕРИОДА(Табель.Дата, ДЕНЬ), | Табель.Подразделение) КАК Табели | ПО СубЗапрос.Ответственный = Табели.Сотрудник | И СубЗапрос.ДатаЧек = Табели.Дата | СГРУППИРОВАТЬ ПО |ЕСТЬNULL(СубЗапрос.Подразделение, Табели.Подразделение), |ЕСТЬNULL(СубЗапрос.ДатаЧек, Табели.Дата), |ЕСТЬNULL(Табели.Поле1, 0), |ЕСТЬNULL(СубЗапрос.Сумма, 0), |ЕСТЬNULL(СубЗапрос.КоличествоТоваров, 0), |ЕСТЬNULL(СубЗапрос.СуммаСкидки, 0), |ЕСТЬNULL(СубЗапрос.КоличествоЧеков, 0), |Табели.Подразделение, |Табели.Дата, |ВЫБОР | КОГДА Табели.Поле1 = 0 | ТОГДА 0 | ИНАЧЕ СубЗапрос.Сумма / Табели.Поле1 |КОНЕЦ, |ВЫБОР | КОГДА Табели.Поле1 = 0 | ТОГДА 0 | ИНАЧЕ СубЗапрос.КоличествоТоваров / Табели.Поле1 |КОНЕЦ, |ВЫБОР | КОГДА Табели.Поле1 = 0 | ТОГДА 0 | ИНАЧЕ СубЗапрос.СуммаСкидки / Табели.Поле1 |КОНЕЦ, |ВЫБОР | КОГДА Табели.Поле1 = 0 | ТОГДА 0 | ИНАЧЕ СубЗапрос.КоличествоЧеков / Табели.Поле1 |КОНЕЦ, |ВЫБОР | КОГДА СубЗапрос.Сумма = 0 | ТОГДА 0 | ИНАЧЕ СубЗапрос.Сумма / СубЗапрос.КоличествоЧеков |КОНЕЦ, |ВЫБОР | КОГДА СубЗапрос.Сумма = 0 | ТОГДА 0 | ИНАЧЕ СубЗапрос.КоличествоТоваров / СубЗапрос.КоличествоЧеков |КОНЕЦ, |ВЫБОР | КОГДА СубЗапрос.КоличествоТоваров = 0 | ТОГДА 0 | ИНАЧЕ СубЗапрос.Сумма / СубЗапрос.КоличествоТоваров |КОНЕЦ, |ЕСТЬNULL(СубЗапрос.Ответственный, Табели.Сотрудник), |Табели.Сотрудник |УПОРЯДОЧИТЬ ПО | Подразделение, | Ответственный, | Дат |
|||
1
goleaff2006
01.10.12
✎
07:29
|
Ругается на вот это
| ВЫБОР | КОГДА ЧекККМТовары.Ссылка.ВидОперации = &ВидОперации | ТОГДА КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ЧекККМТовары.Ссылка) | ИНАЧЕ -КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ЧекККМТовары.Ссылка) |КОНЕЦ |
|||
2
1Сергей
01.10.12
✎
07:32
|
ну, так вставь в группировку, в чем проблема?
|
|||
3
goleaff2006
01.10.12
✎
07:35
|
Не вставляется вот это выражение в группировку почему то.
|
|||
4
Рэйв
01.10.12
✎
07:35
|
(1)Давно пора выучить правило - при группировке все нечсиловые поля должны быть включены в группу, а числовые обернуты в функции типа СУММА
|
|||
5
goleaff2006
01.10.12
✎
07:38
|
Да я понимаю это, вопрос что
ВЫБОР | КОГДА ЧекККМТовары.Ссылка.ВидОперации = &ВидОперации | ТОГДА КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ЧекККМТовары.Ссылка) | ИНАЧЕ -КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ЧекККМТовары.Ссылка) |КОНЕЦ не дает вставить в группировку а только ЧекККМТовары.Ссылка.ВидОперации. |
|||
6
goleaff2006
01.10.12
✎
07:41
|
Пишет не разреше использовать вложенные агретирующие функции.
|
|||
7
Рэйв
01.10.12
✎
07:42
|
(6)Рабочий запрос.
Он ни о чем конечно, просто накидал для примера ВЫБРАТЬ Валюты.Ссылка, ВЫБОР КОГДА ИСТИНА ТОГДА Валюты.Ссылка ИНАЧЕ ЛОЖЬ КОНЕЦ КАК ИмяПоля, СУММА(1) КАК Количество ИЗ Справочник.Валюты КАК Валюты СГРУППИРОВАТЬ ПО Валюты.Ссылка, ВЫБОР КОГДА ИСТИНА ТОГДА Валюты.Ссылка ИНАЧЕ ЛОЖЬ КОНЕЦ |
|||
8
1Сергей
01.10.12
✎
07:44
|
(5) скорее всего не туда вставляешь
|
|||
9
Рэйв
01.10.12
✎
07:45
|
(5)У тебя Количество() там стоит. Потому в группу и не дает запихать
|
|||
10
goleaff2006
01.10.12
✎
07:47
|
Я знаю. я считаю количество в зависимости от условия либо со знаком плюс либо минус. Если как то можно переделать данное выражение буду благодарен.Идей просто никаких нет.
|
|||
11
Рэйв
01.10.12
✎
07:53
|
(10)Предлагаю сначала во вложенном запросе выполнить с количеством, а в верхнем уже группировать
|
|||
12
Рэйв
01.10.12
✎
07:54
|
заодно и от ВЫБОР избавишься, в верхнем запросе будет просто поле
|
|||
13
НЕА123
01.10.12
✎
07:56
|
КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ВЫБОР
| КОГДА ЧекККМТовары.Ссылка.ВидОперации = &ВидОперации | ТОГДА ЧекККМТовары.Ссылка | ИНАЧЕ 1 |КОНЕЦ) - КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ВЫБОР | КОГДА ЧекККМТовары.Ссылка.ВидОперации <> &ВидОперации | ТОГДА ЧекККМТовары.Ссылка | ИНАЧЕ 1 |КОНЕЦ) |
|||
14
НЕА123
01.10.12
✎
07:57
|
(0)
а для чего оно надо? |
|||
15
goleaff2006
01.10.12
✎
08:00
|
Чтобы подсчитать сколько чеков с возвратом а сколько с продажами.
|
|||
16
НЕА123
01.10.12
✎
08:03
|
(15)
а почему в одном поле? присмотрись к (10). |
|||
17
goleaff2006
01.10.12
✎
08:03
|
(13)Он тогда будет считать количество положительным, а надо чтобы было отрицательным для условия.
|
|||
18
goleaff2006
01.10.12
✎
08:05
|
(10)Не совсем понял как?
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |