Как исключить строки с определенным значением в поле на основе определенных значений другого поля? Чтобы погрузиться глубже:
У меня есть столбец с именем "rule_name", который получен из оператора case.
У меня есть другой столбец с именем «DeliveryTermsIdentifier», который извлекается из другой таблицы (см. Изображение результата запроса ниже).
Я пытаюсь удалить строки с правилом_имя "Требуется событие доставки" только если DeliveryTermsIdentifier имеет значение "PP", "DA" и т. Д. Меня сбрасывают, потому что мой столбец rule_name уже основан на условии.
изображение результата запроса
Вот SQL, используемый для получения этих двух столбцов:
,case when s.ShipmentNo is not null then cast(dqr.rulename as varchar(30))
else cast(dqc.dataqualityruleid as varchar(30)) end as rule_name
,case when (dqd.SuccessFlag = 0) then 'Missing'
when (dqd.SuccessFlag = 1) then 'Reported'
when (s.ShipmentNo is null) then 'Missing' end reporting_result
,s.DeliveryTermsIdentifier
from CustomerMasterList cml
join organization o on o.organizationid = cml.senderid
inner join DataQualityConfig dqc on dqc.DomainId = cml.DomainID
left outer join shipment s on s.shipmentno = cml.shipmentno
left outer join dataqualityresult dqd on dqd.shipmentid = s.shipmentid
left outer join dataqualityrule dqr on dqr.dataqualityruleid
=dqd.dataqualityruleid