|
Тупой (?) запрос про итоги в запросе. | ☑ | ||
---|---|---|---|---|
0
ДенисЧ
18.10.19
✎
10:08
|
Есть примитивный (?) запрос (примерный)
Нужно считать количество различных контрагентов (у одного может быть несколько договоров). Приведённый запрос даёт количество по всем группировкам и только в детальных - контрагента. Меня это не устраивает ((( Поле к - считает каждый договор за один и получается задваивание. Нужно получить что-то вроде из : вася, дог1 вася, дог1 вася, дог2 петя, дог3 такое: вася 2 дог1 1 дог2 1 петя 1 дог3 1 Голову сломал уже... Или просто не выспался и всё решается элементарно? ЗЫ, СКД не предлагать, оно тут никаким боком не прилепится. |
|||
1
patapum
18.10.19
✎
10:16
|
Это ты не выспался или я?
"Нужно считать количество различных контрагентов", "вася 2" - два различных васи? Или нужно посчитать количество различных договоров в заказах за период по каждому контрагенту? |
|||
2
Franchiser
гуру
18.10.19
✎
10:17
|
Зачем считаешь количество контрагентов по контрагенту? Тебе же договоры нужны.
|
|||
3
PR
18.10.19
✎
10:19
|
Добавь в выборку
КОЛИЧЕСТВО(РАЗЛИЧНЫЕ Договор) КАК Количество |
|||
4
ДенисЧ
18.10.19
✎
10:21
|
(1) Да, это я не выспался. 2 - даёт количество различные в поле выбрать
(2) мне нужны различные контрагенты. |
|||
5
PaulBC
18.10.19
✎
10:22
|
Получать различных в ВТ, соединять?
|
|||
6
PR
18.10.19
✎
10:22
|
Блеать, ты уже определись, что тебе надо, а то по (0) получается, что количество различных договоров
|
|||
7
ДенисЧ
18.10.19
✎
10:24
|
(6) о том и речь, что получается количество договоров. А нужны контрагенты.
(5) не прокатит |
|||
8
PR
18.10.19
✎
10:25
|
(7) И почему тогда
из : вася, дог1 вася, дог1 вася, дог2 петя, дог3 такое: вася 2 дог1 1 дог2 1 петя 1 дог3 1 а не из : вася, дог1 вася, дог1 вася, дог2 петя, дог3 такое: вася 1 дог1 1 дог2 1 петя 1 дог3 1 |
|||
9
zuza
18.10.19
✎
10:36
|
Если нужны контрагенты, зачем тогда договора вообще?
|
|||
10
ДенисЧ
18.10.19
✎
10:39
|
(9) Потому что нужны и договора и даже заказы, просто заказы я не вынес
(8) Первый вариант при использовании количество различные в Выбрать второе мне нужно получить. |
|||
11
Мимохожий Однако
18.10.19
✎
10:39
|
(7) Выкинь из запроса все поля кроме Контрагент
|
|||
12
Ёпрст
18.10.19
✎
10:44
|
(0) тебе надо количество различные договора, если как в (0) надо, а не клиентосы
|
|||
13
PR
18.10.19
✎
10:44
|
(10) Капец. Иди поспи.
|
|||
14
ДенисЧ
18.10.19
✎
10:44
|
(12) мне надо
вася 1 дог1 1 дог2 1 петя 1 дог3 1 Я очепятался. |
|||
15
ДенисЧ
18.10.19
✎
10:45
|
(11) Ага. А может, мне ещё паспорт выкинуть?
|
|||
16
Franchiser
гуру
18.10.19
✎
10:45
|
Почему у Васи 1 договор?
|
|||
17
ДенисЧ
18.10.19
✎
10:46
|
(16) Потому что два заказа по 1 договору. И 1 по другому.
|
|||
18
Franchiser
гуру
18.10.19
✎
10:46
|
И везде где договор будут единички, это можно и так потом проставить
|
|||
19
Ёпрст
18.10.19
✎
10:47
|
(15) круто, ага.. а зачем их считать, если по ним итоги есть ? чтоб в Общих итогах количество клиентосов поиметь ?
|
|||
20
ДенисЧ
18.10.19
✎
10:49
|
(19) Да. Есть сводная табличка (там кроме контрагентов и договоров ещё несколько группировок по реквизитам договоров, контрагентов, заказов). И надо знать по каждой группировке, сколько в ней контрагентов.
|
|||
21
ДенисЧ
18.10.19
✎
10:50
|
(18) Шта? Как я вместо 1 подставлю "Договор на обслуживание за период с ... по ..." или "договор на покупку оборудования" ?
|
|||
22
Ёпрст
18.10.19
✎
10:58
|
Это, показывай ужо полный текст запроса, чего уж там :)
|
|||
23
ДенисЧ
18.10.19
✎
10:59
|
(22) Зачем тебе триста строк запроса с 8ю временными таблицами?
|
|||
24
Мимохожий Однако
18.10.19
✎
11:01
|
Через пакетный запрос.
1. ВТ_КонтрагентыДоговоры. Поля: Контрагент,Договор, 1 2. ВТ_Контрагенты (различные). Поля: Контрагент, Сумма(1) 3. Соединить две временные таблицы через поле Контрагент Вывести Поля Контрагент, Договор, с итогами по числовым |
|||
25
patapum
18.10.19
✎
11:04
|
(14) Пока по постановке задачи вырисовывается так. Объясняй, где не 1 должно быть и почему
ВЫБРАТЬ Контрагент, ДоговорКонтрагента, 1 КАК Колво ИЗ ... ИТОГИ Максимум(Колво) ПО Общие, Контрагент |
|||
26
ДенисЧ
18.10.19
✎
11:04
|
(24) Пробовал.
вторая соединяется с первой по каждому договору. Получается задвоение. |
|||
27
Жан Пердежон
18.10.19
✎
11:06
|
так а что надо то?
максимум() по группировке, а сумма() по общим? |
|||
28
Ёпрст
18.10.19
✎
11:06
|
(26) куда то надо воткнуть максимум и соединять по истина
|
|||
29
ДенисЧ
18.10.19
✎
11:06
|
(25) Вот такая получается
http://pics.wfido.ru/img/rep_dfmf5.png А на месте круга должен быть контрагент, а не циферка |
|||
30
Мимохожий Однако
18.10.19
✎
11:07
|
(26) Надо соединять по Контрагенту
|
|||
31
Мимохожий Однако
18.10.19
✎
11:07
|
(26) Вторая ВТ без договоров
|
|||
32
ДенисЧ
18.10.19
✎
11:08
|
(31)
первая табличка вася дог1 вася дог2 вторая вася. Соединяем по контрагент. И получаем две строки. |
|||
33
Мимохожий Однако
18.10.19
✎
11:11
|
(32) Вторая табличка с полем единиц. Его надо сгруппировать по контрагенту. В ней подсчитаются итоги по контрагентам
|
|||
34
Мимохожий Однако
18.10.19
✎
11:13
|
Можно соединить вторую ВТ с первой с группировкой по контрагентам
|
|||
35
ДенисЧ
18.10.19
✎
11:13
|
(33) правим
первая табличка вася дог1 вася дог2 вторая вася 1. Объединяем по Контрагент получаем вася, дог1, 1 вася, дог2, 1 И? А там не только количество, там ещё суммы документов идут |
|||
36
Мимохожий Однако
18.10.19
✎
11:14
|
(35) Добавь в первую таблицу единичку и во вторую единичку. По ним и посчитаешь. Вместо единичек можно еще и сумму добавить.
|
|||
37
Мимохожий Однако
18.10.19
✎
11:15
|
Попробуй порисовать в Excel или в блокноте таблички.
|
|||
38
Ёпрст
18.10.19
✎
11:25
|
(29) т.е у тя вопрос тока в том, что в (0) кажет всё верно, но в итогах сам контрагент нужен ?
|
|||
39
Ёпрст
18.10.19
✎
11:25
|
чтоб не получать его потом с детальных записях, так ?
|
|||
40
patapum
18.10.19
✎
11:26
|
(29) Короче, тебе нужно, чтобы в колонке с итоговым полем по общим выводилось количество Контрагентов, а по контрагенту - сам контрагент? Я так запросом не умею. Разве что так, а дальше смотреть, что в какую колонку выводить
ВЫБРАТЬ РАЗЛИЧНЫЕ Контрагент, Контрагент КАК Контрагент1, ДоговорКонтрагента ИЗ Документ.ЗаказПокупателя ГДЕ Дата > ДатаВремя(2019,7,1) ИТОГИ Количество(Различные Контрагент), Максимум(Контрагент1) ПО Общие, Контрагент |
|||
41
Ёпрст
18.10.19
✎
11:27
|
||||
42
Ёпрст
18.10.19
✎
11:31
|
Если да, то в (40) решение
|
|||
43
ДенисЧ
18.10.19
✎
11:32
|
(40) (41) Как раз такое и не подходит.
(38) (39) да |
|||
44
xXeNoNx
18.10.19
✎
11:52
|
Выбираем различные договоры и владельца договора в ВТ, из ВТ контрагента и 1 и группируем по контрагенту
|
|||
45
Ёпрст
18.10.19
✎
11:57
|
(43) Почему ?
http://pics.rsh.ru/img/1_qhqy9wd3.jpg |
|||
46
xXeNoNx
18.10.19
✎
12:40
|
Выбрать Различные Договор.Владелец Как Контрагент, договор.ссылка ПОМЕСТИТЬ втДоговоры из Справочник.Договоры Как Договоры;
Выбрать ВтДоговоры.Контрагент, Сумма(1) Из втДоговоры как втДоговоры Сгруппировать по ВтДоговоры.Контрагент Имеющие Сумма(1) > 1 |
|||
47
sirsp
18.10.19
✎
13:05
|
(29) Так что ли?:
ВЫБРАТЬ "Вася" Контр, "Дог1" Дог ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ "Вася", "Дог1" ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ "Вася", "Дог2" ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ "Петя", "Дог3" ИТОГИ ВЫБОР КОГДА КОЛИЧЕСТВО(РАЗЛИЧНЫЕ Контр) = 1 ТОГДА МИНИМУМ(Контр) ИНАЧЕ КОЛИЧЕСТВО(РАЗЛИЧНЫЕ Контр) КОНЕЦ Контр ПО ОБЩИЕ ,Контр З.Ы. Сработает только если контров > 1 |
|||
48
Fragster
гуру
18.10.19
✎
13:12
|
ВЫБРАТЬ
"Вася" КАК Контр, "ДогВ1" КАК Дог ПОМЕСТИТЬ Таб ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ "Вася", "ДогВ1" ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ "Вася", "ДогВ2" ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ "Петя", "ДогП3" ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ РАЗЛИЧНЫЕ Таб.Контр КАК Контр, Таб.Дог, Таб.Дог КАК Печать, 1 КАК КолДог ИЗ Таб КАК Таб ИТОГИ Таб.Контр КАК Печать, КОЛИЧЕСТВО(РАЗЛИЧНЫЕ Дог) КАК КолДог ПО Контр |
|||
49
Fragster
гуру
18.10.19
✎
13:13
|
Но нах это делать в запросе а не в СКД я не понимаю.
|
|||
50
Fragster
гуру
18.10.19
✎
13:13
|
или не другой постобработкой
|
|||
51
Fragster
гуру
18.10.19
✎
13:14
|
или даже так:
//////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ РАЗЛИЧНЫЕ Таб.Дог КАК Печать, 1 КАК КолДог ИЗ Таб КАК Таб ИТОГИ ЕстьNULL(Таб.Контр, "ИТОГО") КАК Печать, КОЛИЧЕСТВО(РАЗЛИЧНЫЕ Дог) КАК КолДог ПО Контр, Общие |
|||
52
Fragster
гуру
18.10.19
✎
13:15
|
||||
53
Ёпрст
18.10.19
✎
13:18
|
(48) ему типа без повторяющихся вася-дог1 надо было в итоге ?
|
|||
54
Fragster
гуру
18.10.19
✎
13:19
|
(53) я хз. но если различные в (48) убрать, то итоги все равно правильные будут.
|
|||
55
Ёпрст
18.10.19
✎
13:20
|
(51) красота
|
|||
56
Fragster
гуру
18.10.19
✎
13:20
|
главная тупизна (0) это (49)(50)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |