SQL 使用特定条件从 2 列 table 获取有效价格
SQL get active price from 2 column table using specific condition
如何select激活价格,优先选择当季价格,如果在日期范围内,则选择当季价格。但如果它不在日期范围内,则从另一个 table(TBL_ROOM_TYPE).
中选择它
SELECT
TBL_ROOM_TYPE.ID_ROOM_TYPE,
COALESCE(TBL_SEASON_TYPE_MAP.SEASON_PRICE, TBL_ROOM_TYPE.TYPE_PRICE) AS price
FROM
TBL_ROOM_TYPE
left JOIN TBL_SEASON_TYPE_MAP ON TBL_ROOM_TYPE.ID_ROOM_TYPE = TBL_SEASON_TYPE_MAP.ID_ROOM_TYPE
join TBL_ROOM_SEASON on TBL_ROOM_SEASON.ID_SEASON=TBL_SEASON_TYPE_MAP.ID_SEASON
and (@ArrivalDate BETWEEN TBL_ROOM_SEASON.[START_DATE] AND TBL_ROOM_SEASON.[END_DATE] )
所以我想将 id 1 和 3 中的价格更改为与图片 1 相同
请按照这些思路进行操作,table 姓名及其图片会有所帮助。
SELECT
R.ID_ROOM_TYPE
,CASE
WHEN START_DATE<'2018-03-18' AND END_DATE >'2018-03-18' THEN SEASON_PRICE
ELSE TYPE_PRICE END AS PRICE
FROM TBL_ROOM R
LEFT JOIN TBL_ROOM_SEASON S ON S.ID_SEASON = R.ID_SEASON
LEFT JOIN TBL_ROOM_TYPE T ON T.ID_ROOM_TYPE = R.ID_ROOM_TYPE
Image for Reference
谢谢。
如何select激活价格,优先选择当季价格,如果在日期范围内,则选择当季价格。但如果它不在日期范围内,则从另一个 table(TBL_ROOM_TYPE).
中选择它 SELECT
TBL_ROOM_TYPE.ID_ROOM_TYPE,
COALESCE(TBL_SEASON_TYPE_MAP.SEASON_PRICE, TBL_ROOM_TYPE.TYPE_PRICE) AS price
FROM
TBL_ROOM_TYPE
left JOIN TBL_SEASON_TYPE_MAP ON TBL_ROOM_TYPE.ID_ROOM_TYPE = TBL_SEASON_TYPE_MAP.ID_ROOM_TYPE
join TBL_ROOM_SEASON on TBL_ROOM_SEASON.ID_SEASON=TBL_SEASON_TYPE_MAP.ID_SEASON
and (@ArrivalDate BETWEEN TBL_ROOM_SEASON.[START_DATE] AND TBL_ROOM_SEASON.[END_DATE] )
所以我想将 id 1 和 3 中的价格更改为与图片 1 相同
请按照这些思路进行操作,table 姓名及其图片会有所帮助。
SELECT
R.ID_ROOM_TYPE
,CASE
WHEN START_DATE<'2018-03-18' AND END_DATE >'2018-03-18' THEN SEASON_PRICE
ELSE TYPE_PRICE END AS PRICE
FROM TBL_ROOM R
LEFT JOIN TBL_ROOM_SEASON S ON S.ID_SEASON = R.ID_SEASON
LEFT JOIN TBL_ROOM_TYPE T ON T.ID_ROOM_TYPE = R.ID_ROOM_TYPE
Image for Reference
谢谢。