情况

我有两个表:




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


等等。 (CHD =房间里的孩子;不占空位)。

客户表包含用户插入的值。 Tourprices表是房间类型的预设费率。



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

例如:用户希望在2012年2月27日的旅行中预定两个人(DBL)。如何编写查询以根据给定的200美元汇率提取费用?

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


谢谢!

最佳答案

您可以使用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

10-06 12:34