Unterabfragen zu Unterabfragen

Ich versuche eine Select-Anweisung zu erstellen

Ich muss aus einer Tabelle einen Datensatz zusammenstellen, der dem gleichen Code entspricht, der in einer anderen Tabelle verwendet wird.

Besser gesagt, ein Kunde wählt aus einer Dropdown-Liste eine Stadt und eine Kategorie für diese Stadt aus. Wenn der Client als Nächstes auf klickt, werden die verschiedenen Orte in dieser Stadt angezeigt, die dieser Kategorie entsprechen. aber ich kann nicht herausfinden, wo ich falsch liege.

Wenn der Kunde nun eine Stadt auswählt, gibt es zwei Datensätze, die für jede Stadt gelesen werden, einen richtigen Stadtcode und einen Postfachcode mit dem Anfangsbuchstaben "bx"

in meiner ersten Abfrage, um Duplikate zu beseitigen, sage ich

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')

das gibt mir einen Stadtnamen.

Wenn der Kunde zum Beispiel nur Orte ausgewählt hat, an denen Bargeld zu sehen ist, sollte in den Ergebnissen nur ein Datensatz angezeigt werden

Aber wie auch immer, ich kann nicht die richtige Syntax finden

Ich habe es versucht:

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')

das bringt aber mehr ergebnisse als erwartet

Dies geschieht mithilfe einer Zugriffsdatenbank, aber ich verwende SQL, um die Codierung durchzuführen, die ich erneut in den Zugriff schreibe. Das ist kein Problem

Wenn also jemand die SQL-Antwort bereitstellen könnte, kann ich den Rest von dort aus erledigen

Ich bin mir nicht sicher, ob ich mitmachen soll. Ich habe es versucht

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'

aber ich bekomme fehler für mehrteilige kennung konnte nicht gebunden werden

BEARBEITEN

Dies ist die neue Abfrage

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'

was zurückgegeben wird ist

Wie Sie sehen, gibt es zu viele Ergebnisse, bei denen C Strydom der Kunde ist, aber alle Städte sind vorhanden

Für dieses Beispiel sollte nur ein Datensatz angezeigt werden, der zweite

Antworten auf die Frage(2)

Ihre Antwort auf die Frage