|
Помогите с запросом - внутреннее соединение | ☑ | ||
---|---|---|---|---|
0
lll52
14.11.11
✎
12:34
|
Вопрос наверное простой, но запросы даются мне очень сложно как-то ((((
Задача такая: Есть примерно такая таблица ФИО -- Кол-во продаж ---- сумма продаж. Такая строчка в регистр попадает после каждого чека. Я бы хотела запросом получить данные о количестве этих записей -- это для меня будет показатель "количество чеков". Но т.к. я группирую запрос, то количество(КТУпродавцыОбороты.ФИО) прямо в ВЫБРАТЬ записать не могу (как я понимаю.....). Т.е. эти фамилии нужно выбирать из запроса, который еще не был сгруппирован. Помогите плиз. Вот мой вариант - так не работает... ВЫБРАТЬ КТУпродавцыОбороты.ФИО КАК ФИО, СУММА(КТУпродавцыОбороты.СуммаЧекаОборот) КАК СуммаЧекаОборот, СУММА(КТУпродавцыОбороты.КоличествоПозицийвЧекеОборот) КАК КоличествоПозицийвЧекеОборот, КОЛИЧЕСТВО(КТУпродавцыОбороты1.ФИО) КАК КолвоЧеков ИЗ РегистрНакопления.КТУпродавцы.Обороты КАК КТУпродавцыОбороты ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрНакопления.КТУпродавцы.Обороты КАК КТУпродавцыОбороты1 ПО (КТУпродавцыОбороты1.ФИО = КТУпродавцыОбороты.ФИО) СГРУППИРОВАТЬ ПО КТУпродавцыОбороты.ФИО |
|||
1
Jstunner
14.11.11
✎
12:36
|
а нафига соединение?
|
|||
2
Ненавижу 1С
гуру
14.11.11
✎
12:37
|
ВЫБРАТЬ
КТУпродавцыОбороты.ФИО КАК ФИО, СУММА(КТУпродавцыОбороты.СуммаЧекаОборот) КАК СуммаЧекаОборот, СУММА(КТУпродавцыОбороты.КоличествоПозицийвЧекеОборот) КАК КоличествоПозицийвЧекеОборот, СУММА(1) КАК КолвоЧеков ИЗ РегистрНакопления.КТУпродавцы.Обороты КАК КТУпродавцыОбороты СГРУППИРОВАТЬ ПО КТУпродавцыОбороты.ФИО |
|||
3
izekia
14.11.11
✎
12:37
|
количество чеков нужно по продавцу?
(1) + соединение не нужно) |
|||
4
lll52
14.11.11
✎
12:46
|
Спасибо за ответы.
(2) Когда я так пишу, то в колонке Количество Чеков -- у меня везде единицы. |
|||
5
Ненавижу 1С
гуру
14.11.11
✎
12:47
|
(4) значит все КТУпродавцыОбороты.ФИО уникальны
|
|||
6
lll52
14.11.11
✎
12:51
|
(5) но группировку запрос делает, значит нормальные ФИО
|
|||
7
catena
14.11.11
✎
12:54
|
(6)Нормальные не могут быть уникальными?
|
|||
8
Ненавижу 1С
гуру
14.11.11
✎
12:57
|
(6) я говорил, что они "ненормальны"?
|
|||
9
ArtKzn
14.11.11
✎
13:05
|
ВЫБРАТЬ
КТУпродавцыОбороты.ФИО КАК ФИО, СУММА(КТУпродавцыОбороты.СуммаЧекаОборот) КАК СуммаЧекаОборот, СУММА(КТУпродавцыОбороты.КоличествоПозицийвЧекеОборот) КАК КоличествоПозицийвЧекеОборот, КОЛИЧЕСТВО(Различные КТУпродавцыОбороты.Регистратор) КАК КолвоЧеков ИЗ РегистрНакопления.КТУпродавцы.Обороты(,,Регистратор,) КАК КТУпродавцыОбороты СГРУППИРОВАТЬ ПО КТУпродавцыОбороты.ФИО |
|||
10
Starhan
14.11.11
✎
13:05
|
(7) Естественно нормальные фамилии немогут быть уникальными.
Вот напрмер Иванов. Да их же тысячи в России! А если какой нибудь уникальный Пупковец-Барбадуненко. Да у нго не жены ни детей и мать с отцом от него отказались!. |
|||
11
izekia
14.11.11
✎
13:08
|
мб фио это ссылка
|
|||
12
Starhan
14.11.11
✎
13:11
|
(11) ссылка еще лучше чем строка )) нет неоднозначности
|
|||
13
izekia
14.11.11
✎
13:14
|
я про то же)
|
|||
14
Starhan
14.11.11
✎
13:16
|
надо знать струткуру регистра, потмоучто если чек есть в измерениях
то запрос (2) будет возвращать общую сумму чеков и позиций и 1 как колво чеков |
|||
15
Starhan
14.11.11
✎
13:18
|
в (9) лучше использовать КОЛИЧЕСТВО РАЗЛИЧНЫХ :)
|
|||
16
ArtKzn
14.11.11
✎
13:19
|
(15) а там что?
|
|||
17
lll52
14.11.11
✎
13:21
|
(9) Вот это сработало! Спасибо!
Но почему это сработало, а вариант Ненавижу 1С нет, не понимаю. Если для кого-то это очевидно, объясните плиз. Что значит уникальность, про которую тут писали? Выбираю из регистра, где ФИО - СправочникСсылка.ФизическиеЛица. Я ведь записываю в регистр одного и того же человека, а запись ФИО получается уникальной? как так? |
|||
18
Starhan
14.11.11
✎
13:21
|
(16) а там просто количество
|
|||
19
lll52
14.11.11
✎
13:22
|
Про регистр:
Измерения -- ФИО --- СправочникСсылка.ФизическиеЛица. Ресурсы -- СуммаЧека, КолвоПозицийВчеке |
|||
20
Starhan
14.11.11
✎
13:24
|
(17 )Потомучто вирт. таблица обороты по одному измерению сразу свернет табе все рессурсы в 1ну строку, а дальше к ней ты выбираешь 1. Сответственно группировки и суммы там воробще лишние.
(19) у тея еще измерение регистратор и в (9) идет условие переиодичности - Регистратор |
|||
21
Starhan
14.11.11
✎
13:24
|
а в (2) нет
|
|||
22
Starhan
14.11.11
✎
13:25
|
вот если в (2) добавить регистратор то заработает :)
|
|||
23
ArtKzn
14.11.11
✎
13:25
|
(18) Да? А после слова "количество" и скобочки что? :-)
|
|||
24
Starhan
14.11.11
✎
13:27
|
(23) а сорри ) я вообще всегда конструткором тыкаю )
|
|||
25
Ненавижу 1С
гуру
14.11.11
✎
13:27
|
ВЫБРАТЬ
КТУпродавцыОбороты.ФИО КАК ФИО, СУММА(КТУпродавцыОбороты.СуммаЧекаОборот) КАК СуммаЧекаОборот, СУММА(КТУпродавцыОбороты.КоличествоПозицийвЧекеОборот) КАК КоличествоПозицийвЧекеОборот, КОЛИЧЕСТВО(РАЗЛИЧНЫЕ КТУпродавцыОбороты.Регистратор) КАК КолвоЧеков ИЗ РегистрНакопления.КТУпродавцы.Обороты(,,Регистратор,) КАК КТУпродавцыОбороты СГРУППИРОВАТЬ ПО КТУпродавцыОбороты.ФИО |
|||
26
Starhan
14.11.11
✎
13:28
|
(25) - (9)
|
|||
27
ArtKzn
14.11.11
✎
13:29
|
(20) группировки там не лишние.
Они нужны для того, чтобы посчитать количество различных регистраторов. Если убрать группировки, то в результате просто вывалятся все документы - регистраторы |
|||
28
Starhan
14.11.11
✎
13:32
|
(27) без переодичности "регистратор" и какой либо другой, они бесполезны так как вирт таблица уже все сгрупировала.
|
|||
29
Starhan
14.11.11
✎
13:33
|
я писал про запрос в (2)
|
|||
30
ArtKzn
14.11.11
✎
13:36
|
(28)(29) ок ясно
|
|||
31
lll52
14.11.11
✎
13:43
|
Спасибо за ответы.
Блин как же все хитро. Сейчас проверила еще на варианте, и мне такой запрос - использующий Регистратор для подсчета, не подходит. В моем случае может быть регистратор один, а записей несколько. (Я, когда происходит ЗакрытиеКассовойСмены - прописала, чтобы создавался док.КорректировкаЗаписейРегистровНакопления). Т.е. наверное придется делать через объединение, но с таблицей не Обороты, а просто КТУпродавцы. да? |
|||
32
lll52
14.11.11
✎
13:44
|
(31) т.е. док.КорректировкаЗаписейРегистровНакопления --- содержит записи по каждому чеку и переносит их соотв. разными записями в регистр.
|
|||
33
Starhan
14.11.11
✎
13:48
|
(31)(32) Должен подойти так как выбираются в подсчет количество идут только уникальные чеки без дублей. В запросе вот этот участок
КОЛИЧЕСТВО(РАЗЛИЧНЫЕ КТУпродавцыОбороты.Регистратор) КАК КолвоЧеков обрати внимание на слово различные |
|||
34
Starhan
14.11.11
✎
13:50
|
(32) или один докумнт КорректировкаЗаписейРегистровНакопления содержит несколько чеков?
|
|||
35
lll52
14.11.11
✎
13:52
|
(34) Да, в документе чеки за весь день.
|
|||
36
Starhan
14.11.11
✎
13:54
|
Вепрно ли утверждение
1 запись (строка) - 1 чек |
|||
37
lll52
14.11.11
✎
14:01
|
(36) Да. 1запись в регистре = 1 чек (и также 1запись в док.КорректировкаЗаписейРегистровНакопления = 1чек)
Но в регистре одновременно могут находится записи - которые попали после проведения чека, и записи, которые попали из документа КорректировкаЗаписейРегистровНакопления |
|||
38
ArtKzn
14.11.11
✎
14:08
|
(37) Я правильно понимаю, что по одному и тому же чеку в регистре может быть запись как документом Чек, так и документом "КорректировкаХХХ". То есть по одному и тому же чеку может быть две записи с одинаковыми ФИО и количеством-суммой?
|
|||
39
lll52
14.11.11
✎
14:37
|
(37) Одновременно они там не будут. Сначала там запись после проведения чека появляется, потом, когда через обработку ЗакрытиеКассовойСмены чеки удаляются (и данные из регистра соотв. тоже) -- чтобы эти данные не пропали - они в регистр переносятся через док.КорректировкаЗаписейРегистровНакопления
|
|||
40
ArtKzn
14.11.11
✎
14:41
|
(39) Один документ "Корректировка" является регистратором для нескольких записей?
|
|||
41
lll52
14.11.11
✎
14:45
|
(40) Да, через документ переносятся данные по всем чекам: 100 строчек в документе = 100 чеков = 100 записей в регистре.
|
|||
42
ArtKzn
14.11.11
✎
14:47
|
Попробуйте так:
ВЫБРАТЬ КТУпродавцы.ФИО, КОЛИЧЕСТВО(КТУпродавцы.ФИО) КАК КолвоПродаж ПОМЕСТИТЬ ВТ_КоличествоПродаж ИЗ РегистрНакопления.КТУпродавцы КАК КТУпродавцы ГДЕ КТУпродавцы.Период МЕЖДУ &Дата1 И &Дата2 СГРУППИРОВАТЬ ПО КТУпродавцы.ФИО ; // Этот запрос посчитал нам количество строк (записей) в реальной // таблице КТУ продавцы и поместил во временную таблицу ВТ_КоличествоПродаж //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ КТУпродавцыОбороты.ФИО КАК ФИО, КТУпродавцыОбороты.КоличествоПозицийвЧекеОборот, КТУпродавцыОбороты.СуммаЧекаОборот, ВТ_КоличествоПродаж.КолвоПродаж ИЗ РегистрНакопления.КТУпродавцы.Обороты(&Дата1, &Дата2, , ) КАК КТУпродавцыОбороты ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТ_КоличествоПродаж КАК ВТ_КоличествоПродаж ПО КТУпродавцыОбороты.ФИО = ВТ_КоличествоПродаж.ФИО |
|||
43
lll52
14.11.11
✎
15:05
|
(42) То что нужно! Спасибо большущее за помощь!
Работает и считает, что нужно! Ура! |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |