0

状況

私は2つのテーブルを持っています:

テーブル

  • SGL=シングル(部屋に1人)
  • DBL = ダブル (部屋に 2 人)
  • TPL=トリプル(3人)。

等々。(CHD = 同室の子供、割引料金)。

クライアントテーブルには、ユーザーが挿入した値が含まれています。tourpricesテーブルは、部屋タイプの事前設定料金です。

質問

ユーザーが挿入した roomtype を tourprices テーブルの列ヘッダーと比較して、結果がその列ヘッダーの下の日付の価格になるようにクエリする方法はありますか?

例: ユーザーは、2012 年 2 月 27 日のツアーに 2 人 (DBL) を予約したいと考えています。与えられた条件に基づいて 200 ドルのレートを取得するクエリを作成するにはどうすればよいですか?

SELECT c.roomtype, t.SGL, t.DBL, t.TPL, t.QUD, t.CHD
FROM clients c, tourprices t
WHERE c.roomtype = ??????

ありがとう!

4

1 に答える 1

5

CASEStatement を使用して値を確認し、その型を持つRoomtype適切な列を取得して価格を決定できます。Tourprices

SELECT c.Roomtype
   , CASE
        WHEN c.Roomtype = 'SGL' THEN tp.SGL
        WHEN c.Roomtype = 'DBL' THEN tp.DBL
        WHEN c.Roomtype = 'TPL' THEN tp.TPL
        WHEN c.Roomtype = 'QUD' THEN tp.QUD
        WHEN c.Roomtype = 'CHD' THEN tp.CHD
     END AS RateOfTour
FROM Clients AS c
INNER JOIN Tourprices AS tp ON c.tourstart = tp.tourstartp
于 2012-10-27T05:01:45.650 に答える