|
v7: Как объединить результат 2х запросов с одинаковыми полями? | ☑ | ||
---|---|---|---|---|
0
_alex_mst_
18.07.12
✎
16:11
|
Как объединить результат 2х запросов с одинаковыми полями?
|
|||
1
1Сергей
18.07.12
✎
16:16
|
чёрные?
|
|||
2
Ёпрст
18.07.12
✎
16:16
|
написать 1 общий запрос
"объеденить" в ТЗ "объеденить" при обходе по группировкам через Получить |
|||
3
_alex_mst_
19.07.12
✎
09:13
|
Можно примерный код?
|
|||
4
Ёпрст
19.07.12
✎
09:14
|
(3) нам отсюдда не видно, что ты хочешь объеденить и как.
|
|||
5
_alex_mst_
19.07.12
✎
09:17
|
фрагмент первого запроса (именно группировки и сумма):
|Группировка Номенклатура без групп; |Группировка Месяц все; |Функция КоличествоОбщ = Сумма(Количество); фрагмент второго: |Группировка Номенклатура без групп; |Группировка Месяц все; |Функция КоличествоСумма = Сумма(Количество); нужно их слить в один оба запроса на основе разных документов формируются за один и тот же период, но поля одинаковые |
|||
6
Ёпрст
19.07.12
✎
09:18
|
(5) дык пиши общий запрос, делов то.
|
|||
7
_alex_mst_
19.07.12
✎
09:18
|
нужно чтобы потом при обходе (выводе в табДок) данные количества были просуммированы
|
|||
8
Ёпрст
19.07.12
✎
09:18
|
один общий запрос
|
|||
9
_alex_mst_
19.07.12
✎
09:20
|
|Номенклатура = Документ.Реализация.Номенклатура;
//|Количество = Документ.Реализация.Количество; //|Склад = Документ.Реализация.Склад; |
|||
10
Ёпрст
19.07.12
✎
09:20
|
|Период С...ПО...
|Количество= Документ.Вася.Количество,Документ.Федя.Количество; |Номенклатура = Документ.Вася.Номенклатура,Документ.Федя.Номенклатура; |Функция КоличествоСумма = Сумма(Количество); |Группировка Номенклатура без групп; |Группировка Месяц все; |
|||
11
_alex_mst_
19.07.12
✎
09:23
|
тут в доке Вася - делается выборка по всем складам, а в доке федя только один склад. Номенклатура тоже в доке вася разная, в доке федя только одна. количество сосуммируется только при совпадении полей склад и номенклатура (помесячно)? (я давно уже с 7-кой не общался..)
|
|||
12
Ёпрст
19.07.12
✎
09:25
|
(11) и че ?
Да хоть 100 складов и вся разная номенклатура |
|||
13
_alex_mst_
19.07.12
✎
09:49
|
А если есть определенные реквизиты только для 1 док-та, по которым есть условие:
|Количество= Документ.Вася.Количество,Документ.Федя.Количество; |Номенклатура = Документ.Вася.Номенклатура,Документ.Федя.Номенклатура; |Флаг = Документ.Вася.Флаг; |Условие(Флаг=1); то данные док-та федя не попадут в результат? |
|||
14
_alex_mst_
19.07.12
✎
09:50
|
возможно ли туда дописать что-то типа?:
|Флаг = Документ.Вася.Флаг, "1"; т.е. для док-та федя значение флага всегда =1 |
|||
15
Ёпрст
19.07.12
✎
09:51
|
(13) то условие будет действовать ТОЛЬКо для этого вида документа
|
|||
16
_alex_mst_
19.07.12
✎
10:02
|
В оригинале условие такое:
Условие(Флаг = Строка("РР")); и оно отсекает данные второго документа (в котором нет этого реквизита) |
|||
17
1Сергей
19.07.12
✎
10:05
|
(16) покажи чего наваял
|
|||
18
Ёпрст
19.07.12
✎
10:06
|
(16) врешь ведь.. и условие, ну ни в п..у!
|
|||
19
Ёпрст
19.07.12
✎
10:06
|
приводить строку к строке..
|
|||
20
Ёпрст
19.07.12
✎
10:06
|
это полный пэ.
|
|||
21
_alex_mst_
19.07.12
✎
10:07
|
Период с '01.01.12' по '10.01.12';
ОбрабатыватьДокументы Проведенные; Склад = Документ.док1.Склад, Документ.док2.Склад; Номенклатура = Документ.док1.Номенклатура, Документ.док2.Номенклатура; Покупатель = Документ.док1.Покупатель, Документ.док2.Контрагент; ВидОплаты = Документ.док1.ВидОплаты; Флаг = Документ.док1.Флаг; Количество = Документ.док1.Расход, Документ.док2.Количество; Группировка Склад упорядочить по Склад.Наименование; Группировка Номенклатура без групп; Группировка Месяц все; Функция КоличествоОбщ = Сумма(Количество); Условие (Номенклатура.ВидНоменклатуры <> Перечисление.ВидыНоменклатуры.Услуга); Условие (Флаг = Строка("РЛЗ")); |
|||
22
_alex_mst_
19.07.12
✎
10:08
|
нижнее условие убираю - все хорошо, возвращаю, данные отсекаются
|
|||
23
_alex_mst_
19.07.12
✎
10:08
|
в первой версии запроса (когда не было необходимости второй док подтягивать) всё норм работало
|
|||
24
Ёпрст
19.07.12
✎
10:09
|
(21)
|ВидНоменклатуры = Документ.док1.Номенклатура.ВидНоменклатуры, Документ.док2.Номенклатура.ВидНоменклатуры; //Условие (Номенклатура.ВидНоменклатуры <> Перечисление.ВидыНоменклатуры.Услуга); |Условие (ВидНоменклатуры <> Перечисление.ВидыНоменклатуры.Услуга); |Условие (СокрЛП(Флаг) = ""РЛЗ""); |
|||
25
пипец
19.07.12
✎
10:10
|
есть в запросе конструкция <когда>
ЗЫ конструктор не отменяли |
|||
26
_alex_mst_
19.07.12
✎
10:16
|
(24) не помогло
|
|||
27
Ёпрст
19.07.12
✎
10:18
|
(26) да ну ?
:)) без условия флаг, что выводит ? |
|||
28
_alex_mst_
19.07.12
✎
10:18
|
без условия "флаг" выводит данные обоих доков
|
|||
29
Ёпрст
19.07.12
✎
10:20
|
+
нижнее условие убираю - все хорошо, возвращаю, данные отсекаются всё правильно, отсекаются "данные", где Документ.док1.Флаг = "РЛЗ" ЗЫ: заместо Группировка Месяц все; воткни Группировка Документ; - увидишь сам, какие документы фильтруются |
|||
30
_alex_mst_
19.07.12
✎
10:20
|
сам удивляюсь ))))
|
|||
31
Ёпрст
19.07.12
✎
10:20
|
(28) а с условием ?
+ Флаг - реквизит документа с каким типом ? Строка ? |
|||
32
_alex_mst_
19.07.12
✎
10:21
|
мне нужна группировка помесячно - для вывода в табдок
флаг - строка(3) |
|||
33
_alex_mst_
19.07.12
✎
10:22
|
нет такого как в 8-ке: прописать в это поле для второго дока фиксированное значение?
|
|||
34
Ёпрст
19.07.12
✎
10:23
|
(32) потом её сделаешь, в начале проверь, какие документы в выборку попали.
Мот их и нет вовсе. |
|||
35
Ёпрст
19.07.12
✎
10:23
|
(33) есть, но только в прямом запросе
|
|||
36
_alex_mst_
19.07.12
✎
10:24
|
если разделить на два запроса - то всё хорошо, может есть способ потом результаты объединить по полям?
|
|||
37
_alex_mst_
19.07.12
✎
10:25
|
типа запрос1, запрос2 = запрос3 :)
а потом уже запрос3 обходить по группировкам |
|||
38
Mikeware
19.07.12
✎
10:25
|
(36)см. (2)
А вообще, юзай прямые запросы, и забудь черные как страшный сон... |
|||
39
Ёпрст
19.07.12
✎
10:28
|
(36) у тебя всё и в одном работает.
|
|||
40
_alex_mst_
19.07.12
✎
10:30
|
(38) что за прямые запросы? )))
|
|||
41
Ёпрст
19.07.12
✎
10:31
|
(40) тебе рано еще об этом, ты обычный заставь работать.
как в (29) проверил ? Какие документы в выборке ? |
|||
42
_alex_mst_
19.07.12
✎
10:35
|
(41) с условием флаг - доков второго типа в выборке нету
|
|||
43
Ёпрст
19.07.12
✎
10:38
|
а так ?
|Условие ((СокрЛП(Флаг) = ""РЛЗ"")ИЛИ(ПустоеЗначение(Флаг)=1)); |
|||
44
_alex_mst_
19.07.12
✎
10:45
|
О! теперь оба типа!
только мне нужно чтобы доки второго типа брались только по складу "Склад56", а первого - по всем |
|||
45
Ёпрст
19.07.12
✎
10:47
|
пилять, я стал забывать, как там в чорном запросе фильтруется.
Аналогично - Склад объяви как переменную из одного вида документа и условие на пустоезначение склад |
|||
46
Ёпрст
19.07.12
✎
10:48
|
можешь еще условие на вид дока воткнуть, для надежности.
|
|||
47
_alex_mst_
19.07.12
✎
10:51
|
ок, спсб!
|
|||
48
Mikeware
19.07.12
✎
10:51
|
(41) заставить работать обычный - занятие не для слабонервных :-)
|
|||
49
VladZ
19.07.12
✎
10:51
|
(0) Вариант 1: объединить в один запрос.
Вариант 2: выгрузить в индексированные таблицы, таблицы заджоинить. |
|||
50
Ёпрст
19.07.12
✎
10:53
|
(48) ну..черный можно использовать при иерархии и пользовательских функций, иногда удобно. Хотя и не пишу уже такие запросы
|
|||
51
_alex_mst_
19.07.12
✎
10:54
|
(48) это точно! с 8-кой куда всё проще в этом плане :)))
|
|||
52
_alex_mst_
19.07.12
✎
10:54
|
так что за прямые запросы то?
|
|||
53
Ёпрст
19.07.12
✎
10:57
|
(52)
http://www.1cpp.ru/forum/YaBB.pl?board=query читай там FAQ, и скачай статью.. если есть время - разберешься |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |