Я пытаюсь удалить все строки столбца значений A, где столбец B = 'S'. Вот пример, который я мог бы показать с данными:Исключение строк из результатов запроса на основе значения столбца
column A column B
100 S
100 P
100 C
101 P
101 C
102 S
103 C
104 P
здесь, я хотел бы исключить все записи из столбца A, которые показывают «S» в колонке B (100 и 102), так что я остался с:
column A column B
101 P
101 C
103 C
104 P
Я пытался следовать шагам от подобных SO поста (Exclude rows with a column containing a value if multiple rows exist for), но он сохранил за исключением строк, где «S» присутствовал и сохранение общих значений столбцов A.
Например, вот соответствующие части моего запроса я работаю:
select table_a.column_a
,table_b.column_b
,...
from table_z
inner join table_b
on table_z.z = table_b.z
inner join table_y
on table_z.y = table_y.y
left outer join table_a
on table_x.x = table_a.x
where date > 'YYYY-MM-DD'
and (
table_b.column_b not in (
select column_b
from table_b
where (column_b = 'S')
)
)
order by table_a.column_a
Но он удаляет только строки, где column_b = «S» и не удаляет строки со значением column_A, что матч где column_b появляется (column_a = 100 пример с начала этого сообщения).