NAME
そのため、一連のオブジェクトの、ID
、および列を含むテーブルで設定されたデータ モデルがありCONDITION
ます (各オブジェクトには一意の ID 番号があります)。これらのオブジェクトの残りの属性は、オブジェクト タイプに基づいて、いくつかのそれぞれのテーブルの列に含まれています (各タイプに関連付けられたいくつかの異なる属性があります)。すべてのタイプ固有のテーブルにはID
列があり、オブジェクトをマスター リストに一致させることができます。
CONDITION
固有の に関連付けられた に基づいて、いくつかの異なるタイプのオブジェクトに関する情報を返す SQL クエリを作成したいと考えていますID
。
これは私が取り組んでいるものの簡単な例です:
object_master_list
| ID | NAME | CONDITION |
-------------------------
|1234| obj1| true|
|0000| obj2| false|
|1236| obj3| true|
|0001| obj4| false|
|5832| obj5| true|
|6698| obj6| false|
|6699| obj7| false|
obj_type_one
| ID | NAME | HEIGHT |
-------------------------
|1234| obj1| o1height|
|0000| obj2| o2height|
|5832| obj5| o5height|
|6699| obj7| o7height|
obj_type_two
| ID | NAME | WEIGHT |
-------------------------
|1236| obj3| o3height|
|0001| obj4| o4height|
|6698| obj6| o6height|
ご覧のとおり、NAME
and 型またはID
and 型の間に相関関係はありません。私は現在iReportで作業しており、クエリ デザイナーを使用して、必要に応じて手動で編集しています。
現在、クエリの例は次のようになります。
SELECT
object_master_list."NAME" AS NAME,
obj_type_one."HEIGHT" AS HEIGHT,
obj_type_two."WEIGHT" AS WEIGHT
FROM
object_master_list INNER JOIN obj_type_one ON object_master_list."ID" =
obj_type_one."ID"
INNER JOIN obj_type_two ON obj_type_two."ID" = object_master_list."ID"
WHERE
object_master_list."CONDITION" = 'true'
データから結果が返されません。私がSQL結合で行った調査から、これが起こっていると思います:
円 "A" は私のマスター リストを表します。
iReport は、各列のフィールドを使用して、クエリから返された値を行ごとに保存して利用します。理想的には、これで終わるはずです:
$F{NAME} which will receive the following values in succession ("obj1", "obj3", "obj5")
$F{HEIGHT} with value series (o1hieght, null, o5height)
$F{HEIGHT} with value series (null, o3weight, null)
私が推測するテーブル表現は次のようになります。
| NAME | HEIGHT | WEIGHT |
------------------------------
| obj1| o1height| null|
| obj3| null| o3weight|
| obj5| o5height| null|
私の質問は、これをどのように達成するのですか?
以前に小規模でこれに遭遇したので、サブレポートを使用したり、複数のデータ セットを作成したりできることは認識していますが、率直に言って、私は多くのオブジェクト タイプを持っています。TYPE
また、マスター リストに列を追加することもできません。
返信ありがとうございます。