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