14. august 2015 - 20:24 Der er 2 kommentarer og
1 løsning

Select inden i Select

Jeg har to tabeller Sales og Lines

Sales.Id
Sales.CustomerId

Lines.Id
Lines.SalesId
Lines.FromSalesId

Nogle salg foretages til et opbevaringslager, og der kan således oprettes et nyt salg på på baggrund af et tidligere salg...

Salg No 99 kan se således ud
Sales.Id = 99
Sales.CustomerId = 200
Sales.Stock = 10
Lines.Id = 1
Lines.SalesId = 99
Lines.FromSalesId = NULL

Salg no 100 kan se således ud
Sales.Id = 100
Sales.CustomerId = 200
Sales.Stock = Null
Lines.Id = 1
Lines.SalesId = 100
Lines.FromSalesId = 99


Salg nr. 99 er således blevet solgt videre... men salg nr. 99 kan være solgt videre af f.eks. 20 gange...

Nu vil jeg gerne finde alle de sub salg der er foretaget til min kunde, og returnere f.eks. * fra Sales og Lines

Jeg har uden held forsøgt mig således:

SELECT *
FROM Sales INNER JOIN Lines ON Sales.Id = Lines.SalesId
WHERE Lines.SalesId =
    (
    SELECT Sales.FromSalesId
    FROM Sales INNER JOIN Lines ON Sales.Id = Lines.SalesId
    WHERE Sales.CustomerId = 200
    )
   
Problemet er jo nok, at sub select returnerer mange FromSalesId og det kan WHERE Lines.Sale = ikke rigtig håndtere...

Hvordan får jeg det løst?
14. august 2015 - 20:28 #1
SÅ blind... Lines.SalesId = skal være Lines.SalesId IN  (fløjter og drøner videre)
14. august 2015 - 23:10 #2
Jeg har selv været ude for, adskillige gange, at det at formulere et spørgsmål er en hjælp til selv at indse svaret.
14. august 2015 - 23:39 #3
Præcis :-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester