0

情况

我有两张桌子:

表

  • SGL=单人(房间一人)
  • DBL = 双人间(房间里有两个人)
  • TPL = 三人(三人)。

等等。(CHD = 房间内的儿童;入住折扣)。

客户表包含用户插入的值。tourprices表是房间类型的预设价格。

问题

有没有办法查询用户插入的房间类型与 tourprices 表的列标题进行比较,结果是该列标题下日期的价格?

例如:用户希望预订两个人 (DBL) 参加 2012 年 2 月 27 日的旅行。如何编写查询以根据给定的价格拉出 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

您可以使用CASE语句来查看值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 回答