私は非常に貧弱に設計されたテーブル構造に基づいてレポートを作成する仕事を与えられました。
次の 2 つのテーブルを検討してください。それぞれの人が各ジムで行うのが好きなテクニックが含まれています。PERSONNEL テーブルでは、一意の人物が複数の行に表示される場合があることに注意してください。
PERSONNEL
+-----+-----+-------+--------+-----------+
| ID | PID | Name | Gym | Technique |
+-----+-----+-------+--------+-----------+
| 1 | 122 | Bob | GymA | 2,3,4 |
+-----+-----+-------+--------+-----------+
| 2 | 131 | Mary | GymA | 1,2,4 |
+-----+-----+-------+--------+-----------+
| 3 | 122 | Bob | GymB | 1,2,3 |
+-----+-----+-------+--------+-----------+
TECHNIQUES
+-----+------------+
| ID | Technique |
+-----+------------+
| 1 | Running |
+-----+------------+
| 2 | Walking |
+-----+------------+
| 3 | Hopping |
+-----+------------+
| 4 | Skipping |
+-----+------------+
私が思いつくのに苦労しているのは、特定の手法を実行しているテーブル内のすべての人のリストを確実に表示する MSSQL クエリです。
たとえば、スキップが好きな人すべてのリストが欲しいとしましょう。望ましい結果は次のようになります。
PREFERS_SKIPPING
+-----+-------+--------+
| PID | Name | Gym |
+-----+-------+--------+
| 122 | Bob | GymA |
+-----+-------+--------+
| 131 | Mary | GymA |
+-----+-------+--------+
同様にホッピング:
PREFERS_HOPPING
+-----+-------+--------+
| PID | Name | Gym |
+-----+-------+--------+
| 122 | Bob | GymA |
+-----+-------+--------+
| 122 | Bob | GymB |
+-----+-------+--------+
ColdFusion では文字列を簡単に分割できますが、PERSONNEL テーブルのサイズのため、それはオプションではありません。誰でも助けることができますか?