その日のフライトの視覚的なデイプランナー タイプの表現として、時間とパイロットの表を使用して、フライト スクールの予約データベースを作成しています。時々副操縦士が必要な航空機を手に入れるまで、私はそれをうまく機能させていました.
名簿に永続的に登録されているパイロット (プランナーで常に確認したいパイロット) と、時々使用されるパイロット (その日の予約が存在する場合にのみそこにいたい) があります。彼らはまた、プランナーでパイロットの独自の順序を設定できるようにしたかったのでint_LISTORDER
、リストに順序を設定するフィールドをスタッフ レコードint_LISTORDER
に作成しました。彼らのために。副操縦士をミックスに追加するために、予約により、機長のtxt_STAFFNAME2
フィールドに加えてフィールドが追加されましたtxt_STAFFNAME
。
元のパイロットのみのバージョンで次のクエリを作成して、特定の日に予約があるすべてのパイロット ($tl_date
変数) を選択し、スタッフ リストのパイロットのリストと一致してリスト順を取得し、それをリストオーダーが 500 未満のパイロットのリスト:
(SELECT DISTINCT tbl_booking_details.txt_STAFFNAME AS txt_PILOT,
tbl_staff_details.int_LISTORDER AS int_ORDER
FROM tbl_booking_details
INNER JOIN tbl_staff_details
ON
tbl_staff_details.txt_PILOTNAME = tbl_booking_details.txt_STAFFNAME
WHERE tbl_booking_details.date_DATE = '{$tl_date}'
AND tbl_staff_details.txt_PILOTNAME !='--none--'
AND tbl_booking_details.txt_COMPLETECODE !='CANCELLED')
UNION
(SELECT tbl_staff_details.txt_PILOTNAME AS txt_PILOT,
tbl_staff_details.int_LISTORDER AS int_ORDER
FROM `tbl_staff_details`
WHERE tbl_staff_details.bool_ISPILOT =1
AND tbl_staff_details.bool_CURRENT =1
AND tbl_staff_details.txt_PILOTNAME != '--none--'
AND tbl_staff_details.int_LISTORDER <500)
ORDER BY ".STAFF_LIST_ORDER;
このクエリは、私の MySQL の知識を少し広げたので、「tbl_booking_detail」のパイロット ( ) と副操縦士 ( ) のリストとそのリストUNION
を取得するステートメントの前に、クエリの最初の部分を変更する方法を考える必要があります。その特定の日に予約がある「tbl_staff_detail」からのオーダー ( ) を「txt_PILOT」および「int_ORDER」として 1 つのテーブルに格納します。WHERE 句のフィールドと値の名前がわかりやすいといいのですが。txt_STAFFNAME
txt_STAFFNAME2
int_LISTORDER
このクエリを新しい基準を満たすように変更する方法を教えてください。
よろしく
ブレードン。
編集:@bonCodigo
テーブルの詳細は次のとおりです (関係のない多くのフィールドを除く)。
tbl_booking_details
------------------------------------------------------------------------------
ID | txt_STAFFNAME | txt_STAFFNAME2 | date_DATE | txt_COMPLETECODE | ...
------------------------------------------------------------------------------
475 | Joe A | Joe B | 2013-01-14 | CONFIRMED | ...
------------------------------------------------------------------------------
476 | Joe A | --none-- | 2013-01-14 | CONFIRMED | ...
------------------------------------------------------------------------------
476 | Joe C | Joe A | 2013-01-14 | CANCELLED | ...
------------------------------------------------------------------------------
477 | Joe B | Jane D | 2013-01-14 | CONFIRMED | ...
------------------------------------------------------------------------------
478 | Joe E | Jane D | 2013-01-14 | CONFIRMED | ...
------------------------------------------------------------------------------
tbl_staff_details
----------------------------------------------------------------------------
ID | txt_PILOTNAME | bool_CURRENT| bool_ISPILOT | int_LISTORDER | ...
----------------------------------------------------------------------------
1 | --none-- | 1 | 1 | 0 | ...
----------------------------------------------------------------------------
2 | Joe A | 1 | 1 | 5 | ...
----------------------------------------------------------------------------
4 | Joe B | 1 | 1 | 15 | ...
----------------------------------------------------------------------------
5 | Joe C | 1 | 1 | 510 | ...
----------------------------------------------------------------------------
6 | Jane D | 1 | 1 | 20 | ...
----------------------------------------------------------------------------
7 | Joe E | 1 | 1 | 520 | ...
----------------------------------------------------------------------------
望ましい結果:
--------------------------
| txt_PILOT | int_ORDER |
--------------------------
| Joe A | 5 |
--------------------------
| Joe B | 15 |
--------------------------
| Jane D | 20 |
--------------------------
| Joe E | 520 |
--------------------------