Subconsultas em subconsultas

Eu estou tentando criar uma declaração select

Eu preciso reunir de uma tabela um registro que é igual ao mesmo código usado em outra tabela.

melhor colocado, um cliente seleciona em uma lista suspensa uma cidade e uma categoria para essa cidade. Quando o cliente clica em seguida, os vários locais nessa cidade que atendem a essa categoria são exibidos. mas não consigo descobrir onde estou indo errado.

agora, quando o cliente seleciona uma cidade, há dois registros que são lidos para cada cidade, um código de cidade apropriado e um código de caixa postal com 'bx' como as primeiras letras

na minha primeira consulta, para eliminar duplicatas, eu digo

select c.[Description] from city c 
where c.Provincecode like 'EC' and 
      c.citycode in (select c.citycode from City c 
                     where SUBSTRING(c.citycode,0,3) not like 'bx')

isso me dá um nome de cidade.

mas agora, se o cliente escolheu, por exemplo, apenas locais para ver, deve haver apenas um registro aparecendo nos resultados

mas, por mais que eu tente, não consigo obter a sintaxe correta

Eu tentei:

select c.[Description] from city c 
where c.Provincecode like 'EC' and 
      c.citycode in (select c.citycode from City c 
                     where SUBSTRING(c.citycode,0,3) not like 'bx') 
      and exists (select * from Customers cu 
                  where cu.Category like 'SC' and cu.Province like 'EC')

mas isso traz mais resultados do que o esperado

isso é feito usando um banco de dados de acesso, mas estou usando o SQL para fazer a codificação, que eu reescrevo no acesso. isso não é problema

então, se alguém puder fornecer a resposta do SQL, eu posso fazer o resto de lá

Não tenho certeza se devo fazer uma junção. Eu tentei

select * from 
(select c.[Description] from city c 
 where c.Provincecode like 'EC' and 
       c.citycode in (select c.citycode from City c 
                      where SUBSTRING(c.citycode,0,3) not like 'bx')) x 
join Customers on  province=city.provincecode where Category like 'SC'

mas eu recebo erros para o identificador de várias partes não poderia ser ligado

EDITAR

esta é a nova consulta

select * 
from 
    (
        select c.* 
        from city c 
        where c.Provincecode like 'EC' 
            and c.citycode in
                (
                    select c.citycode 
                    from City c 
                    where SUBSTRING(c.citycode,0,3) not like 'bx'
                )
    ) x 
    join 
    Customers  
        on  province=x.Provincecode 
where Category like 'SC'

o que é retornado é

como você pode ver, há muitos reultos que têm C Strydom como cliente, mas todas as cidades estão lá

para este exemplo em particular, apenas um registro deve ser mostrado, o segundo

questionAnswers(2)

yourAnswerToTheQuestion