1

したがって、次のようなテーブルがあります。

ID  |  parentID  |   name   |  typeID
---------------------------------------
1   |      2     |  thing1  |    1
2   |      4     |  region1 |    0
3   |      4     |  region2 |    0
4   |     NULL   |  region3 |    0
5   |      3     |  foo1    |    2
5   |      3     |  foo2    |    2
6   |      3     |  bar1    |    3

私が必要としているのは、次のような出力です。

ID  |  region  |   thing  |  foo  |  bar
--------------------------------------------
1   |  region1 |  thing1  |  NULL |  NULL
2   |  region2 |  NULL    |  foo1 |  bar1
3   |  region2 |  NULL    |  foo2 |  NULL
4   |  region3 |  NULL    |  NULL |  NULL

これとともに

Select ID,
    (CASE WHEN [typeID] = 0 THEN [name] END) AS region,
    (CASE WHEN [typeID] = 1 THEN [name] END) AS thing,
    (CASE WHEN [typeID] = 3 THEN [name] END) AS foo,
    (CASE WHEN [typeID] = 5 THEN [name] END) AS bar
FROM [my].[dbo].[foobarthingtable]
where type = 0 OR type = 1 OR type = 3 OR type = 5 

私はこれを(論理的に)得ます:

ID  |  region  |   thing  |  foo  |  bar
--------------------------------------------
1   |  NULL    |  thing1  |  NULL |  NULL
2   |  region1 |  NULL    |  NULL |  NULL
3   |  region2 |  NULL    |  NULL |  NULL
4   |  region3 |  NULL    |  NULL |  NULL
5   |  NULL    |  NULL    |  foo1 |  NULL
6   |  NULL    |  NULL    |  foo2 |  NULL
7   |  NULL    |  NULL    |  NULL |  bar1

(親) リージョンと同じ行にある「foos」、「bars」、および「things」を取得するにはどうすればよいですか? これを JSF ページの概要として表示する必要があるため、 JPA の方法 ( CriteriaQuery) もいいでしょう。

どうも

4

3 に答える 3