私は3つのテーブルを持っています。Apls、Hulls および AplsHulls。
Apls は id、name、date で構成されます Hulls は id、production_name で構成されます AplsHulls は結合テーブルであり、id、apl_id、hull_id、status で構成されます。
すべての Hull が各 Apl に関連付けられているわけではありません。状態 (出荷済み、生産中など) を持つ結合テーブルにあるもの
次の列ヘッダーを持つテーブル/グリッドにレポートを表示する必要があります: Apl Name、Apl_Date、残りの列タイトルとして船体生産名。(ハル 7 が結果セットに含まれていない場合、列も取得されません。
データについては、apl 名、apl 日付をリストし、残りの列をループして、結合テーブルのレコードのステータスを入力する必要があります。apl と hull が結合テーブルに関連付けられていない場合は、セルに「NA」を入力します。
私はこれをさまざまな方法で試しましたが、現在、船体の列ヘッダーの動的リストを取得できますが、データを正しくループさせることができないようです。
Sample Data:
Apls Table
Id: 1, Name: X1-0000, Date: 1/1/2009
Id: 2, Name: BG-5480, Date: 2/22/2009
Id: 3, Name: HG-0000, Date: 2/27/2009
Hulls Table
Id: 1, Production_name: ProdA
Id: 2, Production_name: ProdB
Id: 3, Production_name: ProdC
Id: 4, Production_name: ProdD
AplsHulls Table
Id: 1, Apl_id: 1, Hull_id: 1, Status:Delivered
Id: 2, Apl_id: 1, Hull_id: 3, Status:Ordered
Id: 3, Apl_id: 2, Hull_id: 4, Status:Delivered
次のように表示するテーブルが必要です。
APL | Date | ProdA | ProdC | ProdD
X1-0000 | 01/01/2009 | Delivered | Ordered | NA
BG-5480 | 02/22/2009 | NA | NA | Delivered
ProdB のレコードは結合テーブルにまったく含まれていないため、列ヘッダーが ProdB を無視していることに注意してください。また、結合テーブルにある列には NA が入力されますが、結合テーブルに関連付けられていない場合があります。
それは非常に紛らわしいです、私は知っています。