Имя: Пароль:
1C
1С v8
СКД Изменение выборки данных
0 Crusher
 
24.03.23
09:49
Допустим, есть какая-то выборка данных. В ней есть поле, принимающее только 3 значения. Необходимо преобразовать эту выборку, чтобы для каждой строки выводились все значения этого поля, даже если по ним нет данных. Либо при выводе группировки по этому полю выводить все значения, в т.ч. с нулевыми ресурсами. Как обычно такое делается? Пробовал через создание отдельной таблички для этих 3х значений и левое соединение с выборкой по необходимому полю - не вышло.
1 Лирик
 
24.03.23
09:51
Соединение должно быть полным
2 Crusher
 
24.03.23
14:31
(1) Не выходит. Попробую наглядно обрисовать ситуацию.
Исходная выборка:

Поле1     | Поле2 | Сумма
Значение1 | 1     | 1000
Значение2 | 1     | 2000
Значение1 | 2     | 1000
Значение2 | 2     | 2000
Значение3 | 2     | 3000

Необходимо преобразовать выборку к:

Поле1     | Поле2 | Сумма
Значение1 | 1     | 1000
Значение2 | 1     | 2000
Значение3 | NULL  | NULL
Значение1 | 2     | 1000
Значение2 | 2     | 2000
Значение3 | 2     | 3000

Не выводит строку Значение3 | NULL  | NULL при полном соединении.
3 Остап Ибрагимович
 
24.03.23
14:34
соединение - не наборов данных, а в запросе набора данных.
4 toypaul
 
гуру
24.03.23
14:39
select p1.Поле1,p2.Поле2 from
into ft
(select distinct Поле1 from t) p1, (select distinct Поле2 from t) p2;

select ft.*, t.сумма from ft left join t on ft.поле1=t.поле1 and ft.поле2=ft.поле2
5 Crusher
 
24.03.23
16:40
(3) В одном запросе пытаюсь сделать.
(4) Спасибо! На тестовых таблицах выводит необходимое, но боевой запрос с десятками дополнительных полей зависает. Я так понимаю, для всех соединяемых полей требуется выборка различных значений?
6 Crusher
 
25.03.23
12:20
Получилось реализовать левым соединением измерений исходной таблицы к табличке значений по ИСТИНА с группировкой, затем левое соединение с исходной таблицей с соединением по всем полям.