Hop til teksten

IT FJERNUNDERVISNING
- IT kurser når Du har tid!

Kampagnepris på Excel VBA resten af året!

Filtrering af data med underforespørgsler

Med underforespørgsler kan man ofte lave lang mere smart filterering på sine datasæt.

Lad os kaste os direkte ud i et eksempel:

SELECT CustomerID
      ,PersonID
      ,StoreID
      ,TerritoryID
      ,AccountNumber
  FROM Sales.Customer WHERE 
  CustomerId IN 
      (SELECT CustomerId FROM Sales.SalesOrderHeader WHERE 
       Month(OrderDate) = 5);

Når denne forespørgsel bliver kørt sker det "indefra og ud" - dvs. først bliver 

SELECT CustomerId FROM Sales.SalesOrderHeader WHERE 
       Month(OrderDate) = 5

kørt og den vil returnere alle de rækker fra SalesOrderHeader, hvor ordren er placeret i maj måned (uafhængigt af året).

Dernæst får vi fra Customer tabellen de rækker, hvor CustomerId findes i de rækker der er kommet retur.

Bemærk:

  1. Den indre forespørgsel må kun returnere én kolonne
  2. Man kan kun brug IN
  3. Men man kan godt bruge NOT IN til f.eks. at finde alle de kunder, der ikke har nogle ordrer.

Når du har betalt for kurset får du adgang til øvelser til hver lektion. Og når du har fået godkendt din besvarelse får du desuden adgang til mine løsningsforslag med ekstra tips og trix.