情况
我有两个表:
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