нужно создать флаг, чтобы определить все Room_IDs
где следующие встречают:TSQL: условный выпуск запроса
- в «Qc-»
Status
присутствует в одномHotel_ID
. - «Qc-»
Status
имеет соответствующий «Qc-»Status
(например, «занятый qc» & «занят»). - «Qc-»
Status
должен иметь меньшийRoom_ID
, чем не «Qc-»Status
. (Например,Status
= «дс занимаемого» имеетRoom_ID
= 1 иStatus
= «занято» имеетRoom_ID
= 5)
Это упрощенная таблица (tableX) Я использую в качестве примера:
**Hotel_ID Room_Id Status**
1 1 vacant
1 2 qc-occupied
1 3 vacant
2 1 occupied
2 2 qc-vacant
2 3 vacant
3 1 qc-vacant
4 1 vacant
4 2 occupied
4 3 qc-vacant
5 1 vacant
мне нужно следующее в результате:
**Hotel_ID Room_Id Status flag**
1 1 vacant 0
1 2 qc-occupied 0
1 3 vacant 0
2 1 occupied 0
2 2 qc-vacant 1
2 3 vacant 1
3 1 qc-vacant 0
4 1 vacant 0
4 2 occupied 0
4 3 qc-vacant 0
5 1 vacant 0
Спасибо заранее!
Что вы пробовали и с какими проблемами вы столкнулись? «Мне нужно» не показывает много исследований и работы. – HABO
Прошу прощения, если это казалось невежливым, я полностью застрял .. Я не вижу способа заставить его работать. Я создал флаг для агрегирования статуса с его QC-копией. flag 1 = CASE WHEN [status] = 'qc-busy' или 'занято' THEN 'занято' WHEN [status] = 'qc-vacant' или 'vacant' THEN 'vacant' END, flag 2 = CASE WHEN [status] like 'qc -%' then 'QC Order' ELSE 'None QC Order' END, rn = ROW_NUMBER() over (раздел по адресу Hotel_ID by Room_Id) –