У меня есть таблица, содержащая следующие данные (дата представляет собой тип данных INT), она состоит из Object
с, каждый из которых имеет два Type
с, которые могут быть установлены на Not modifiable
или Modifiable
для определенного временного диапазона:
Object Type StatusOld StatusNew Date
/1BCDWB/ 2 Not modifiable Modifiable 20011003
HOME 1 Not modifiable Modifiable 20011003
/1BCDWB/ 2 Modifiable Not modifiable 20011003
HOME 1 Modifiable Not modifiable 20011003
/0CUST/ 2 Not modifiable Modifiable 20011003
/0SAP/ 2 Not modifiable Modifiable 20011003
/0SAP/ 2 Modifiable Not modifiable 20011003
/1BCABA/ 2 Not modifiable Modifiable 20011003
/1BCABA/ 2 Modifiable Not modifiable 20011003
/0CUST/ 2 Not modifiable Modifiable 20011003
/0SAP/ 2 Not modifiable Modifiable 20011003
/1BCABA/ 2 Not modifiable Modifiable 20011003
/1BCDWB/ 2 Not modifiable Modifiable 20011003
/0CUST/ 2 Modifiable Not modifiable 20011003
/0SAP/ 2 Modifiable Not modifiable 20011003
/1BCABA/ 2 Modifiable Not modifiable 20011003
/1BCDWB/ 2 Modifiable Not modifiable 20011003
/0CUST/ 2 Modifiable Not modifiable 20011210
/1BCDWB/ 2 Modifiable Not modifiable 20011210
HOME 1 Modifiable Not modifiable 20011210
/0CUST/ 2 Not modifiable Modifiable 20011210
/1BCDWB/ 2 Not modifiable Modifiable 20011210
HOME 1 Not modifiable Modifiable 20011210
HOME 1 Not modifiable Modifiable 20020211
, тогда у меня есть таблица с соответствующими временными диапазонами, мне нужно проверить эти значения:
start_date end_date
20000610 20000610
20000611 20011002
В конечном результате мне нужно просто Yes
или No
для указанного выше временного диапазона, если для обоих Type
1 и 2 одного Object
было установлено значение Modifiable
в течение этого времени:
SystemModifiable start_date end_date
No 20000610 20000610
No 20000611 20011002
Так что я подумал из описания случая CTE:
Case
When ((Type=1 And StatusNew=Modifiable) And (Type=2 And StatusNew=Modifiable)) And -- For each date range-- Then 'Yes'
Else 'No'
End As SystemModifiable
Может быть, этот псевдокод поможет лучше понять его. Да, в результате необходимо выполнить следующее условие:
IF (Type=1 AND StatusNew=modifiable AND
Type=2 AND StatusNew=modifiable) SET SystemModifiable to 'Yes'
ELSE SET SystemModifiable to 'No'
Я ценю вашу помощь, если у вас есть вопросы, дайте мне знать.