|
СКД Изменение выборки данных | ☑ | ||
|---|---|---|---|---|
|
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
|
Получилось реализовать левым соединением измерений исходной таблицы к табличке значений по ИСТИНА с группировкой, затем левое соединение с исходной таблицей с соединением по всем полям.
|
| Форум | Правила | Описание | Секции | Поиск |