powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / матрица
11 сообщений из 11, страница 1 из 1
матрица
    #34043257
TORT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Знатоки, подскажите как сделать:
есть таблицы:
my.a в которой один столбец id,
my.a
id
----
1
2
3
my.b в которой один столбец id,
id
----
1
2
3
и my.c
a_id | b_id | value
----------------------
1 | 2 | 1
1 | 3 | 1
2 | 3 | 1 ,
3 | 1 | 1 ,
в которой a_id ссылка на my.a.id и b_id ссылка на my.b.id.
Возможно ли написать вопрос, который бы возвращал:
здесь ось по my.a
з 0 1 1
д 0 0 1
е 1 0 0
с
ь

о
с
ь

по my.b
...
Рейтинг: 0 / 0
матрица
    #34043491
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
with 
  a(id) as (values ( 1 ), ( 2 ), ( 3 ))
, b(id) as (values ( 1 ), ( 2 ), ( 3 ))
, c(a_id, b_id, value) as 
(
values 
  ( 1 ,  2 ,  1 )
, ( 1 ,  3 ,  1 )
, ( 2 ,  3 ,  1 )
, ( 3 ,  1 ,  1 )
)
select 
  max(case a.id when  1  then coalesce(c.value,  0 ) else  0  end) v1
, max(case a.id when  2  then coalesce(c.value,  0 ) else  0  end) v2
, max(case a.id when  3  then coalesce(c.value,  0 ) else  0  end) v3
from a
join b on  1 = 1 
left join c on c.a_id=a.id and c.b_id=b.id
group by b.id
order by b.id;
Только в вашем примере у матрицы по-моему оси перепутаны.
Код будет работать только если заранее известны все различные значения a.id
...
Рейтинг: 0 / 0
матрица
    #34043526
TORT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
немного не то...
я заранее не знаю сколько записей в таблицах my.a и my.b
а матрица должна быть размерностью count(my.a)*count(my.b), если можно так выразиться:)
...
Рейтинг: 0 / 0
матрица
    #34043836
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Если вы не знаете, сколько и какие точно разных значений по горизонтальной оси, то вы не напишете на "статическом" sql такой запрос, т.к. получается переменное число колонок.
Я для таких целей написал себе хранимую процедуру общего вида, которая динамически строит нужный запрос на основе текстового параметра-селект-предложения и заполняет его результатами временную таблицу.
...
Рейтинг: 0 / 0
матрица
    #34043952
gardenman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Воспользуйся лучше BLOB ))) SQL не любит таблиц с неопределенным числом колонок))
...
Рейтинг: 0 / 0
матрица
    #34044134
TORT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Насчет хранимки - это понятно....
Насчет BLOB - это как?
...
Рейтинг: 0 / 0
матрица
    #34045084
gardenman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пусть хранимка возвращает BLOB. а уж как по этому блобу клеточки матрицы получить - и как эту фигню запрограммить - эт другое дело. Я думаю эт не слишком сложно. Всеже надо будит изначально поставить некоторые ограничения. дескать матрица не больше 1000х1000, тогда, если хранить действительные числа, то - 8МБ, если комплексные - в два раза больше + 4 байта на описание структуры. Типа не так уж и сложно.
...
Рейтинг: 0 / 0
матрица
    #34045364
Nikolay Kulikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А еще лучше в 9-ке возвращать сразу XML который легко отобразится в виде crosstab'a или давай я попробую тебе продать Alphablox :)
он как раз хорошо подходит для рисования отчетов типа сrosstab.
Если есть желание могу дать попробовать...
...
Рейтинг: 0 / 0
матрица
    #34046510
gardenman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Действительно, Николай прав))
...
Рейтинг: 0 / 0
матрица
    #34046533
TORT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
у нас DB2 v.8.2...
Вопрос Николаю...
А как можно получить прайс на продукты семейства DB2 v.9 и смежные с ними?
...
Рейтинг: 0 / 0
матрица
    #34048605
Nikolay Kulikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Харощий вопрос
У бизнес партнеров и на сайте IBM или позвонить 940 2000.
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / матрица
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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