Цитата(Tonal @ 19.12.2008, 18:01)
Не проще ли выдернуть все данные на клиента и там извращаться?
да вот на клиенте хотелось простоты, QSqlQueryModel + QTableView
Сделал посредством двух процедур. Одна делает из столбца строку, а вторая делает нужное кол-во строк.
вот так работает первая:
FOR select
Sum(case when p.TID = '0' then p.PWR end),
Sum(case when p.TID = '1' then p.PWR end),
Sum(case when p.TID = '2' then p.PWR end),
Sum(case when p.TID = '3' then p.PWR end),
Sum(case when p.TID = '4' then p.PWR end),
Sum(case when p.TID = '5' then p.PWR end),
Sum(case when p.TID = '6' then p.PWR end),
Sum(case when p.TID = '7' then p.PWR end),
Sum(case when p.TID = '8' then p.PWR end),
Sum(case when p.TID = '9' then p.PWR end),
Sum(case when p.TID = '10' then p.PWR end),
Sum(case when p.TID = '11' then p.PWR end),
Sum(case when p.TID = '12' then p.PWR end),
Sum(case when p.TID = '13' then p.PWR end),
Sum(case when p.TID = '14' then p.PWR end),
Sum(case when p.TID = '15' then p.PWR end),
Sum(case when p.TID = '16' then p.PWR end),
Sum(case when p.TID = '17' then p.PWR end),
Sum(case when p.TID = '18' then p.PWR end),
Sum(case when p.TID = '19' then p.PWR end),
Sum(case when p.TID = '20' then p.PWR end),
Sum(case when p.TID = '21' then p.PWR end),
Sum(case when p.TID = '22' then p.PWR end),
Sum(case when p.TID = '23' then p.PWR end)
from P_HOURLYPWR(:pointid, :indate) p
INTO :f00, :f01, :f02, :f03, :f04, :f05, :f06, :f07, :f08, :f09, :f10, :f11, :f12, :f13, :f14, :f15, :f16, :f17, :f18, :f19, :f20, :f21, :f22, :f23
...
если не писать
Sum то исходная таблица (содержащая один столбец) превращается в диагональную матрицу, в которой по диагонали размещаются значения исходной. Ну а с помощью Sum(case...) получаем строку из N столбцов.