Поворот на oracle v10.2.0 с двумя значениями c - PullRequest
0 голосов
/ 26 марта 2020

Мне нужно получить результат запроса, подобный следующему:

        |Person1                  |Person2                  |Person3                  |...
        ------------------------------------------------------------------------------------
Date1   |function(Person1Id,Date1)|function(Person2Id,Date1)|function(Person3Id,Date1)|...         
Date2   |function(Person1Id,Date2)|function(Person2Id,Date2)|function(Person3Id,Date2)|...
Date3   |function(Person1Id,Date3)|function(Person2Id,Date3)|function(Person3Id,Date3)|...
.
.
.

Даты поступают от пользователя, а PersonIds - из таблицы. Что мне нужно, это просто отправить идентификаторы и даты функции и получить результат этого. Поскольку я работаю над oracle v10.2.0, поворот не работает, и я пишу кейс ... когда заявления для каждого человека не будут работать, потому что в таблице, которую я собираю, много людей.

Любая помощь оценили.

1 Ответ

1 голос
/ 26 марта 2020

Вы можете использовать условное агрегирование в версии 10g БД, например,

SELECT myDate,
       MAX(CASE WHEN PersonId=1 THEN myfunc(PersonId,myDate) END) AS Person1,
       MAX(CASE WHEN PersonId=2 THEN myfunc(PersonId,myDate) END) AS Person2,
       MAX(CASE WHEN PersonId=3 THEN myfunc(PersonId,myDate) END) AS Person3
  FROM t 
 GROUP BY myDate
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...