Имя: Пароль:
1C
1С v8
Применение в запросах параметра UNION
0 Xelga
 
29.07.12
23:08
У меня был опыт написания запросов на языке sql, там есть параметр union, используемый для горизонтального объединения результатов двух запросов. Как этот параметр применяется в 1С, можно ли его указать в конструкторе запросов?
Задача соединить несколько запросов горизонтально, а потом сделать по результату общую группировку, можно ли так сделать через конструктор запросов? Может у кого-то есть пример аналогичного запроса?
1 1C-band
 
29.07.12
23:12
Всё есть, + ЛЕВОЕ и ПРАВОЕ. Пользоваться также. В конструкторе запроса - закладка "Связи".
2 Xelga
 
29.07.12
23:14
(1) это совершенно другие виды объединений, которые позволяют соединить таблицы вертикально, а мне нужно горизонтально
3 aleks-id
 
29.07.12
23:18
нет такого. как вариант описывать все недостающие поля через нулл или 0
4 Xelga
 
29.07.12
23:21
(3) не может быть , на сайте 1с написано "    В языке запросов "1С:Предприятия" поддерживаются стандартные для SQL операции, такие, как объединение (Union), соединение (Join) и т.д."
5 Xelga
 
29.07.12
23:22
Вопрос в том, как это сделать может надо части запроса закинуть во временные таблицы, а потом временные таблицы соединить с помощью union?
6 Пеппи
 
29.07.12
23:22
"Объединить все" есть же :)
7 Xelga
 
29.07.12
23:24
(6) с "объединить" понятно, не совсем правильно вопрос написала, в общем-то интересует в конструкторе я могу это использовать или нет?
8 Xelga
 
29.07.12
23:25
запросы очень большие, которые объединить надо, текстом неудобно писать , вот думала как это можно сделать через конструктор
9 Пеппи
 
29.07.12
23:25
можно конечно
10 Пеппи
 
29.07.12
23:26
на закладке Объединение/псевдонимы
11 aleks-id
 
29.07.12
23:29
(6) это к чему?
я так понял что у ТС задача выбрать первым запросом а1,а2,а3 вторым запросом б1,б2,б3 и получить в итоге а1,а2,а3,б1,б2,б3
12 Пеппи
 
29.07.12
23:32
(11) смотри (7)
13 Xelga
 
29.07.12
23:34
(11) ну да задача именно такая и объединить для этого и используется, вот нашла пример
ВЫБРАТЬ
   Номенклатура,
   СУММА(КолПриход) КАК КолПриход,
   СУММА(СумПриход) КАК СумПриход,
   СУММА(КолРасход) КАК КолРасход,
   СУММА(СумРасход) КАК СумРасход
ИЗ

(ВЫБРАТЬ
   Номенклатура,
   Количество КАК КолПриход,
   Сумма       КАК СумПриход,
   0         КАК КолРасход,
   0         КАК СумРасход
ИЗ
   Документ.Приходная.Товары

ОБЪЕДИНИТЬ

ВЫБРАТЬ
   Номенклатура,
   0       КАК КолПриход,
   0       КАК СумПриход,
   Количество КАК КолРасход,
   Сумма       КАК СумРасход
ИЗ
   Документ.Расходная.Товары) КАК ВложенныйЗапрос

СГРУППИРОВАТЬ ПО Номенклатура    

мне нужно что-то типа такого только внутри запросы огромные, думаю как удобнее сделать
14 Xelga
 
29.07.12
23:38
(10) я добавлю допустим запрос2, а где внешний запрос прописывать? который будет объединять результаты запроса1 и запроса2 , непонятно как-то
15 Xelga
 
29.07.12
23:43
где потом внешнюю группировку прописывать?
16 Пеппи
 
29.07.12
23:47
(15) нужно создать вложенный запрос в котором создаете объединение таблиц.
17 глазковыколупыватель
 
29.07.12
23:48
"ВЫБРАТЬ
|    ВложенныйЗапрос.Номенклатура,
|    СУММА(ВложенныйЗапрос.КолПриход) КАК КолПриход,
|    СУММА(ВложенныйЗапрос.СумПриход) КАК СумПриход,
|    СУММА(ВложенныйЗапрос.КолРасход) КАК КолРасход,
|    СУММА(ВложенныйЗапрос.СумРасход) КАК СумРасход
|ИЗ
|    (ВЫБРАТЬ
|        ВложенныйЗапрос.Номенклатура КАК Номенклатура,
|        СУММА(ВложенныйЗапрос.КолПриход) КАК КолПриход,
|        СУММА(ВложенныйЗапрос.СумПриход) КАК СумПриход,
|        СУММА(ВложенныйЗапрос.КолРасход) КАК КолРасход,
|        СУММА(ВложенныйЗапрос.СумРасход) КАК СумРасход
|    ИЗ
|        (ВЫБРАТЬ
|            ПоступлениеТоваровТовары.Номенклатура КАК Номенклатура,
|            ПоступлениеТоваровТовары.Количество КАК КолПриход,
|            ПоступлениеТоваровТовары.Сумма КАК СумПриход,
|            0 КАК КолРасход,
|            0 КАК СумРасход
|        ИЗ
|            Документ.ПоступлениеТоваров.Товары КАК ПоступлениеТоваровТовары
|        
|        ОБЪЕДИНИТЬ
|        
|        ВЫБРАТЬ
|            РеализацияТоваровТовары.Номенклатура,
|            0,
|            0,
|            РеализацияТоваровТовары.Количество,
|            РеализацияТоваровТовары.Сумма
|        ИЗ
|            Документ.РеализацияТоваров.Товары КАК РеализацияТоваровТовары) КАК ВложенныйЗапрос
|    
|    СГРУППИРОВАТЬ ПО
|        ВложенныйЗапрос.Номенклатура) КАК ВложенныйЗапрос
|
|СГРУППИРОВАТЬ ПО
|    ВложенныйЗапрос.Номенклатура"

Мб так?
18 Xelga
 
30.07.12
00:45
с объединением получилось, возник по ходу другой вопрос, как в запросе вставить строковую константу, я имею в виду то, что в запросе sql было бы так
select 'какая-то строка' as НазваниеПоля
19 chelentano
 
30.07.12
07:03
(18) также, только вместо ' ставишь ""
20 Рэйв
 
30.07.12
07:05
(18)
Выбрать
"Какаято строка" КАК Название
21 Живой Ископаемый
 
30.07.12
07:59
Юнион - не параметр...
22 SnarkHunter
 
30.07.12
08:00
Уже говорили, что Union - это не параметр?
23 shuhard
 
30.07.12
08:15
(22) а инфаркт ТС от термина предикатив не хватит ?
24 Xelga
 
30.07.12
08:54
(21),(22) да понятно что не параметр, не знаю я как правильно называется)) главное что вопрос решила)
25 Живой Ископаемый
 
30.07.12
08:59
надо было сразу жЁппой называть, тогда бы решилось быстрее.
Программист всегда исправляет последнюю ошибку.