Hvordan å gjøre en subselect Query i Access

I alle database applikasjon som bruker Structured Query Language (SQL) for å lage spørringer, er "Velg" søket arbeidshesten. Alt fra enkle utsikt til komplekse tiltrer og beregninger er gjort via variasjoner på Velg spørringen. Under velger eller sub-spørring er rett og slett en utvalgt uttalelse nestet inne i en annen velger søket. Den enkleste måten å bygge og forstå en sub-velger søket er å bygge og kjøre begge deler av spørringen individuelt for å sikre at du har de resultatene du ønsker og deretter kombinere dem i en sub-velger søket. Dette eksemplet vil bygge en spørring for å vise hvilke kunder ikke har kjøpt noe i over 90 dager.

Bruksanvisning

1 Lag en spørring for å velge og vise alle kunder. Å lage noen spørring i Access, klikk på "søk" under Object-menyen, og klikk deretter på "Design" eller "Ny" på menylinjen. Når Query-vinduet åpnes, klikker du på "View" og deretter "SQL View" for å åpne opp et tekstvindu for å gå inn i søket. Skriv inn spørringen, og klikk deretter på den røde utropstegn for å kjøre spørringen.

Syntaksen er som følger:

"Velg Customers.ID, Customers.Company fra kunder"

Dette viser alle kunde IDer og firmanavn i kundens database.

2 Lag en spørring som viser alle bestillinger som har blitt plassert i de siste 90 dagene. Syntaksen for dette søket ser slik ut:

"Velg Orders.OrderID fra bestillinger hvor Orders.CustomerID = Customers.CustomerID og Orders.OrderDate> Date () - 90)

Dette søket vil bare vise "OrderID" felt som har en gyldig kunde-ID-nummer i det, og et salg i løpet av de siste 90 dagene.

3 Lag under velger søket ved å kombinere disse to spørringer.

"Velg Customers.ID, Customers.Company fra kunder der ikke finnes

(Velg Orders.OrderID

fra bestillinger

hvor Orders.CustomerID = Customers.CustomerID

and Orders.OrderDate > Date() - 90)

Denne spørringen, i kraft, viser alt fra den første spørring som ikke er i den andre spørringen. Med andre ord, dette viser alle kunder som ikke har kjøpt noe i de siste 90 dagene. Nøkkelen til sub-select er "der ikke finnes" klausulen.

Hint

  • Uavhengig av type eller komplekse spørringen du prøver å bygge, alltid bygge og teste hver del for seg. Dette vil gjøre debugging mye enklere.
  • Hvis du bygger spørsmål eller sub-spørringer som er ødeleggende, for eksempel slette eller oppdatere spørringer, alltid teste med en utvalgt spørring først, slik at du er sikker på hva du ber om å slette eller endre.