|
Запрос к документу и его табличной части | ☑ | ||
---|---|---|---|---|
0
balak05
27.02.14
✎
16:33
|
Здравствуйте. Нужно выбрать данные из документа и его табличной части. Делаю следующим образом:
ВЫБРАТЬ КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ВЫБОР КОГДА ЧекККМ.СтатусЧекаККМ = &Аннулированный ТОГДА ЧекККМ.Ссылка ИНАЧЕ 0 КОНЕЦ) КАК колАн, СУММА(ВЫБОР КОГДА ЧекККМ.СтатусЧекаККМ = &Аннулированный ТОГДА ЧекККМ.СуммаДокумента ИНАЧЕ 0 КОНЕЦ) КАК СуммаАн, КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ЧекККМ.Ссылка) КАК кол, СУММА(ЧекККМ.СуммаДокумента) КАК Сумма, КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ВЫБОР КОГДА ЧекККМОплата.ВидОплаты.ТипОплаты = &Наличные ТОГДА ЧекККМОплата.Ссылка ИНАЧЕ 0 КОНЕЦ) КАК колнал, СУММА(ВЫБОР КОГДА ЧекККМОплата.ВидОплаты.ТипОплаты = &Наличные ТОГДА ЧекККМОплата.Сумма ИНАЧЕ 0 КОНЕЦ) КАК сумнал, КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ВЫБОР КОГДА ЧекККМОплата.ВидОплаты.ТипОплаты = &ПлКарта ТОГДА ЧекККМОплата.Ссылка ИНАЧЕ 0 КОНЕЦ) КАК колпл, СУММА(ВЫБОР КОГДА ЧекККМОплата.ВидОплаты.ТипОплаты = &ПлКарта ТОГДА ЧекККМОплата.Сумма ИНАЧЕ 0 КОНЕЦ) КАК сумпл ИЗ Документ.ЧекККМ КАК ЧекККМ, Документ.ЧекККМ.Оплата КАК ЧекККМОплата ГДЕ ЧекККМ.Дата МЕЖДУ &ДатаНачала И &ДатаОкончания И ЧекККМОплата.Ссылка.Дата МЕЖДУ &ДатаНачала И &ДатаОкончания В результате получается общее количество документов и документов по категориям совпадают. Хотя должно быть общее количество равно сумме документов по категориям. В чем может быть ошибка? |
|||
1
Maxus43
27.02.14
✎
16:38
|
ИЗ
Документ.ЧекККМ КАК ЧекККМ, Документ.ЧекККМ.Оплата КАК ЧекККМОплата это кросс-джойн, ты представляешь что в итоге? соединение хоть сделай |
|||
2
balak05
27.02.14
✎
16:42
|
(1) соединение по какому полю? по ссылке не подходит. Мне нужно донные по общему количеству чеков за период, по количеству аннулированных чеков(это из реквизитов документа). И количество чеков за наличные и платежные карты (это из таб. части). Понимаю что туплю, просто башка не соображает уже. (наверное в отпуск надо)
|
|||
3
Maxus43
27.02.14
✎
16:43
|
(2) делай Объединением запросов тогда, раз данные не связаны между собой логически... не пихай всё в одну портянку.
Разделяй и властвуй! |
|||
4
Ненавижу 1С
гуру
27.02.14
✎
16:44
|
(2) может объединение надо?
|
|||
5
balak05
27.02.14
✎
16:49
|
(3) (4) пробую...
|
|||
6
Никулин Леонид
27.02.14
✎
17:07
|
Выбирай все из табличной части документа, а к реквизитам в шапке обращайся серез "Ссылка."
|
|||
7
balak05
27.02.14
✎
17:10
|
(6) пробовал. не знаю почему но при таком раскладе ссылки неправильно считает
|
|||
8
balak05
27.02.14
✎
17:12
|
В общем сделал объединением, цифры вроде правильные, но выводит две строки
вот текст запроса ВЫБРАТЬ СУММА(ВЫБОР КОГДА ЧекККМ.СтатусЧекаККМ = &Аннулированный ТОГДА 1 ИНАЧЕ 0 КОНЕЦ) КАК колАн, СУММА(ВЫБОР КОГДА ЧекККМ.СтатусЧекаККМ = &Аннулированный ТОГДА ЧекККМ.СуммаДокумента ИНАЧЕ 0 КОНЕЦ) КАК сумАн, КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ЧекККМ.Ссылка) КАК кол, СУММА(ЧекККМ.СуммаДокумента) КАК СуммаДокумента, СУММА(0) КАК СуммаНал, СУММА(0) КАК КолПл, СУММА(0) КАК СумПл, СУММА(0) КАК КолНал ИЗ Документ.ЧекККМ КАК ЧекККМ ГДЕ ЧекККМ.Дата МЕЖДУ &ДатаНачала И &ДатаОкончания ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ СУММА(0), СУММА(0), СУММА(0), СУММА(0), СУММА(ВЫБОР КОГДА ЧекККМОплата.ВидОплаты.ТипОплаты = &Наличные ТОГДА ЧекККМОплата.Сумма ИНАЧЕ 0 КОНЕЦ), СУММА(ВЫБОР КОГДА ЧекККМОплата.ВидОплаты.ТипОплаты = &ПлКарта ТОГДА 1 ИНАЧЕ 0 КОНЕЦ), СУММА(ВЫБОР КОГДА ЧекККМОплата.ВидОплаты.ТипОплаты = &ПлКарта ТОГДА ЧекККМОплата.Сумма ИНАЧЕ 0 КОНЕЦ), СУММА(ВЫБОР КОГДА ЧекККМОплата.ВидОплаты.ТипОплаты = &Наличные ТОГДА 1 ИНАЧЕ 0 КОНЕЦ) ИЗ Документ.ЧекККМ.Оплата КАК ЧекККМОплата ГДЕ ЧекККМОплата.Ссылка.Дата МЕЖДУ &ДатаНачала И &ДатаОкончания Как убрать вторую строчку? |
|||
9
Никулин Леонид
27.02.14
✎
17:14
|
ВЫБРАТЬ
КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ВЫБОР КОГДА ЧекККМОплата.ссылка.СтатусЧекаККМ = &Аннулированный ТОГДА Ссылка ИНАЧЕ 0 КОНЕЦ) КАК колАн, СУММА(ВЫБОР КОГДА ЧекККМОплата.ссылка.СтатусЧекаККМ = &Аннулированный ТОГДА ЧекККМОплата.ссылка.СуммаДокумента ИНАЧЕ 0 КОНЕЦ) КАК СуммаАн, КОЛИЧЕСТВО(РАЗЛИЧНЫЕ Ссылка) КАК кол, СУММА(ЧекККМОплата.ссылка.СуммаДокумента) КАК Сумма, КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ВЫБОР КОГДА ЧекККМОплата.ВидОплаты.ТипОплаты = &Наличные ТОГДА ЧекККМОплата.Ссылка ИНАЧЕ 0 КОНЕЦ) КАК колнал, СУММА(ВЫБОР КОГДА ЧекККМОплата.ВидОплаты.ТипОплаты = &Наличные ТОГДА ЧекККМОплата.Сумма ИНАЧЕ 0 КОНЕЦ) КАК сумнал, КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ВЫБОР КОГДА ЧекККМОплата.ВидОплаты.ТипОплаты = &ПлКарта ТОГДА ЧекККМОплата.Ссылка ИНАЧЕ 0 КОНЕЦ) КАК колпл, СУММА(ВЫБОР КОГДА ЧекККМОплата.ВидОплаты.ТипОплаты = &ПлКарта ТОГДА ЧекККМОплата.Сумма ИНАЧЕ 0 КОНЕЦ) КАК сумпл ИЗ //Документ.ЧекККМ КАК ЧекККМ, Документ.ЧекККМ.Оплата КАК ЧекККМОплата ГДЕ ЧекККМОплата.ссылка.Дата МЕЖДУ &ДатаНачала И &ДатаОкончания //И ЧекККМОплата.Ссылка.Дата МЕЖДУ &ДатаНачала И &ДатаОкончания |
|||
10
Никулин Леонид
27.02.14
✎
17:18
|
В твоем запросе все выбирается из одной таблицы. Не усложняй себе жизнь.
|
|||
11
balak05
27.02.14
✎
17:20
|
(9) колАн СуммаАн кол Сумма колнал сумнал колпл сумпл
1 0 2 27 479 2 27 479 1 0 почему то возвращает количество с нулевой ценой |
|||
12
balak05
27.02.14
✎
17:23
|
и цифры неправильные
колАн сумАн кол СуммаДокумента СуммаНал КолПл СумПл КолНал 2 10 484 4 37 963 0 0 0 0 0 0 0 0 27 479 0 0 2 здесь все правильно, но как сделать одну строчку? |
|||
13
Maxus43
27.02.14
✎
17:24
|
(12) засунь оба запроса во вложенный, а потом сгруппируй на выходе
|
|||
14
Никулин Леонид
27.02.14
✎
17:24
|
Если задвоен результат попробуй поэксперементировать со связями
|
|||
15
Никулин Леонид
27.02.14
✎
17:25
|
(13) бли, там же простой запрос? Все и так должно работать!
|
|||
16
Maxus43
27.02.14
✎
17:26
|
(15) не совсем. если в ТЧ несколько строк, то смысл первой части запроса пойдёт не в ту степь...
|
|||
17
balak05
27.02.14
✎
17:28
|
(15) но не работает
|
|||
18
balak05
27.02.14
✎
17:29
|
(16) там одна строка. проверил
|
|||
19
Maxus43
27.02.14
✎
17:30
|
(18) где там? во всех докуентах?
|
|||
20
Никулин Леонид
27.02.14
✎
17:30
|
Да не, не в том смысле:)
|
|||
21
Никулин Леонид
27.02.14
✎
17:31
|
(18) если у тебя в табличной части документа будет несколько строк, а не тип значения "Строка"
|
|||
22
Никулин Леонид
27.02.14
✎
17:33
|
Скорее всего у тебя попадутся документы где будет больше одной строки
|
|||
23
Никулин Леонид
27.02.14
✎
17:34
|
(+13) Тогда добавляй в оба запроса номенклатуру(че-нибудь только не число), а потом на выходе сгруппируешь по ней. Может так?
|
|||
24
balak05
27.02.14
✎
17:35
|
(13) вроде так работает
|
|||
25
Никулин Леонид
27.02.14
✎
17:36
|
ништяк
|
|||
26
balak05
27.02.14
✎
17:37
|
(22) попадутся. например часть оплаты сертификатом каким нибудь а часть налом. сейчас проверю такой вариант
|
|||
27
balak05
27.02.14
✎
17:43
|
(22) (26) так тоже работает. всем спасибо за помощь
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |