Имя: Пароль:
1C
1С v8
v8: Создание таблицы в запросе
0 Zorbba
 
26.12.11
12:12
Допустим, есть справочник контрагентов:
Контрагент1
Контрагент2
Контрагент3

и перечисление типов:
Тип1
Тип2

Как посредством запроса сгенерировать таблицу вида:
КОНТРАГЕНТ    ТИП    СУММА
Контрагент1    Тип1    0
Контрагент1    Тип2    0
Контрагент2    Тип1    0
Контрагент2    Тип2    0
Контрагент3    Тип1    0
Контрагент3    Тип2    0
1 Maxus43
 
26.12.11
12:13
соединение по ИСТИНА
2 Ненавижу 1С
 
гуру
26.12.11
12:13
проще некуда, перечислить таблицы через запятую
3 guitar_player
 
26.12.11
12:13
просто. Соединить по условию истина и добавить все поля, плюс поле со значением 0 в выборку
4 Maxus43
 
26.12.11
12:15
ВЫБРАТЬ
   Контрагенты.Ссылка КАК Контрагент,
   Важность.Ссылка КАК Перечисление,
   0 КАК Сумма
ИЗ
   Справочник.Контрагенты КАК Контрагенты
       ЛЕВОЕ СОЕДИНЕНИЕ Перечисление.Важность КАК Важность
       ПО (ИСТИНА)
5 rs_trade
 
26.12.11
12:17
(3)(4) про кросс джойн не слыхали?
6 Maxus43
 
26.12.11
12:17
(5) просвети тупых и жадных
7 Zorbba
 
26.12.11
12:18
Благодарю, получилось.
8 rs_trade
 
26.12.11
12:19
(6) в (2) написано
9 Maxus43
 
26.12.11
12:53
(8) Кросс Джойн - Этот вид соединения нужно использовать с осторожностью, время выполнения растет пропорционально произведению количества записей соединяемых таблиц :)
10 rs_trade
 
26.12.11
15:09
(9) а в левом по истине не так?
11 Maxus43
 
26.12.11
15:52
(10) хз) суть одна. в языке запросов 1с нет явного указания кросс джойна
12 rs_trade
 
26.12.11
16:52
(11) да ну. ты бы хоть проверил что ли, прежде чем писать.
13 Maxus43
 
26.12.11
17:04
(12) явное указание - ЛЕВОЕ СОЕДИНЕНИЕ например, в СП 1с кросса нет, а в СКЛ есть явное указание CROSS JOIN. я это имел ввиду
14 rs_trade
 
26.12.11
17:24
(13) Таблички через запятую это точно такое же явное указание, как и CROSS JOIN. Просто это разные версии синтаксической записи ANSI SQL.
15 Maxus43
 
26.12.11
17:26
(140 буду знать сенсей
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. Эдвард Йодан