我有两张桌子:
等等。 (CHD =室内儿童;折扣入住率)。
clients 表包含用户插入的值。 tourprices 表是房型的预设费率。
有没有办法查询,以便将用户插入的roomtype与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 = ??????
谢谢!
答案 0 :(得分: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