powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Раскидать строки по столбцам
3 сообщений из 3, страница 1 из 1
Раскидать строки по столбцам
    #40041364
alekcvp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Имеется таблица
OBJ_ID VTYPE VALUE
Ключ: OBJ_ID + VTYPE.

Мне надо значения из неё вывести в гриде в виде:
OBJ_ID VALUE1 VALUE2 VALUE3 VSUM
где ключ - OBJ_ID, а VALUEX - значение VALUE из первой таблицы, где VTYPE = X (их всего 3), VSUM - сумма всех трёх.

Как это сделать правильно?.. Мне кажется что у меня не лучший вариант получился.
Код: sql
1.
2.
3.
4.
5.
select p.obj_id, v0.value, v1.value, v2.value, coalesce(v0.value, 0) + coalesce(v1.value, 0) + coalesce(v2.value, 0)
from sometable p
left join tvalues v0 on p.obj_id = v0.obj_id and v0.vtype = 0
left join tvalues v1 on p.obj_id = v1.obj_id and v1.vtype = 1
left join tvalues v2 on p.obj_id = v2.obj_id and v2.vtype = 2
...
Рейтинг: 0 / 0
Раскидать строки по столбцам
    #40041387
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alekcvpКак это сделать правильно?..

Двумерный массив в клиентском приложении - самое правильное.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Раскидать строки по столбцам
    #40041448
KreatorXXI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alekcvp,

если количество столбцов ограниченно, то можно вот так:
Код: sql
1.
2.
3.
4.
5.
6.
select obj_id, sum(v1), sum(v2), sum(v3), sum(v1 + v2 + v3)
from (
  select p.obj_id obl_id, iif(p.vtype=1, p.value, 0) v1, iif(p.vtype=2, p.value, 0) v2, iif(p.vtype=3, p.value, 0) v3
  from sometable p
)
group by 1


Как-то так.
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Раскидать строки по столбцам
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]