私は SQL を初めて使用し、データを表示するためにクエリを必要とする MS Access の ListBox コンポーネントを使用しています。クエリを作成するために必要なテーブルは次のとおりです。
表: ブロック +----+--------+ | | ID | B_名前 | +----+--------+ | | 1 | ブロック F | | | 2 | ブロックE | . . . 表: 部屋 +----+------+--------+-------+-----+---------+---- ---+------+ | | ID | B_ID | R_Name | 床 | 床 | パックス | E_ウィング | BTC_R | 男性 | +----+------+--------+-------+-----+---------+---- ---+------+ | | 1 | 1 | ルーム1 | 2 | 10 | 真 | 真 | 真 | | | 2 | 1 | ルーム 2 | 2 | 10 | 真 | 真 | 真 | | | 3 | 2 | ルーム1 | 1 | 10 | 真 | 偽 | いいえ| . . .
ここで、B_ID はブロックと部屋の間の 1 対多の関係を示すブロックへの外部キーであり、PAX は空室の最大量です。
表: ユーザーグループ +----+--------+-------+-----------+ | | ID | R_ID | グループ | 居住者 | +----+--------+-------+-----------+ | | 1 | 1 | SQ 1 | 4 | | | 2 | 1 | 特殊能力 2 | 5 | . . .
ここで、R_ID はルームへの外部キーで、ルームとユーザーグループ間の 1 対多の関係を示します
ユーザーは、Floor、E_Wing、BTC_R、MALE、および B_ID 列の条件に基づいて部屋をフィルター処理できます。
私の質問は、フィルター条件と次のような結果のテーブルに基づいてすべての部屋を表示する方法です。
※例えばフィルター条件がB_ID=1の場合※
表: クエリ結果 +--------+--------------+ | | R_Name | 複雑なクエリ | +--------+--------------+ | | ルーム1 | 0 / 10 | | | ルーム 2 | 9 / 10 | . . . ComplexQuery : "TOTAL OCCUPANTS / PAX"
私がこれまでに行った進歩は、別のクエリです
SELECT SUM(UserGroups.Occupants) FROM ユーザーグループ WHERE UserGroups.R_ID = DESIRED_ID 部屋を選択.PAX FROM ルームズ WHERE Rooms.ID = DESIRED_ID
- フィルタ条件に一致するすべてのルーム ID に対してクエリを繰り返す方法
- 両方のクエリを単一のクエリにマージする方法
- 値を「OCCUPANTS / PAX」として単一の列に連結するにはどうすればよいですか
どんな助けでも大歓迎です。