Vinnaren i pepparkakshustävlingen!
2012-01-30, 15:26
  #1
Medlem
Hej!

Behöver hjälp med en SQL-fråga som jag inte lyckas få till.
Jag har två tabeller: Artikeldata och LagerSaldo.
Ur dessa vill jag ha ut "Benämning" och "Lagersaldo".

Artikeldata
-----------
ArtikelNummer
Färg
Storlek
Benämning

LagerSaldo
-----------
ArtikelNummer
Färg
Storlek
Lagersaldo

För att hitta korrekt lagersaldo så måste Artikeldata.Artikelnummer = LagerSaldo.ArtikelNummer, Artikeldata.Färg = LagerSaldo.Färg och Artikeldata.Storlek = LagerSaldo.Storlek.

Detta borde egentligen inga vara några konstigheter, problemet är att tabellen LagerSaldo endast innehåller data med lagersaldo större än noll. Dvs är lagersaldot noll så finns de ej med i tabellen. Jag skulle därför behöva göra någon typ av JOIN som jag inte får till.

Någon vänlig själ som kan hjälpa till?
Citera
2012-01-30, 15:31
  #2
Medlem
LEFT JOIN.

För övrigt kan du ta bort Färg och Storlek ur LagerSaldo, eftersom det enbart är redundant data.
Citera
2012-01-30, 15:32
  #3
Medlem
För att förtydliga: Jag vill även skriva ut Benämningarna med lagersaldo 0 i de fall där lagersaldo ej finns med i tabellen Lagersaldo.
Citera
2012-01-30, 15:35
  #4
Medlem
Citat:
Ursprungligen postat av poussard
LEFT JOIN.

För övrigt kan du ta bort Färg och Storlek ur LagerSaldo, eftersom det enbart är redundant data.

Tack för svar! Jag kan tyvärr ej ta bort Färg och Storlek eftersom artikelnumret inte är unikt.
Jag lyckas därför inte få till en LEFT JOIN eftersom jag behöver matcha alla tre(Artnr, färg och storlek). Går det?
Citera
2012-01-30, 15:37
  #5
Medlem
Jaha, artikelNr inte unikt.
Citera
2012-01-30, 15:44
  #6
Medlem
Citat:
Ursprungligen postat av poussard
Jaha, artikelNr inte unikt.

Nix, det är det som ställer till det. Jag behöver alltså göra en join med "Artnummer, färg och storlek". Lyckas inte få till det
Citera
2012-01-30, 15:54
  #7
Medlem
Fast jag förstår faktiskt inte ändå varför det inte skulle funka? Vad får du för fel om du skriver:

Kod:
SELECT
     a
.Benämning
     
,l.Lagersaldo
FROM
     Artikeldata a
          LEFT JOIN Lagersaldo l 
               ON a
.Färg=l.Färg 
               
AND a.Storlek=l.Storlek
               
AND a.ArtikelNummer=l.ArtikelNummer 
Citera
2012-01-30, 16:18
  #8
Medlem
Citat:
Ursprungligen postat av poussard
Fast jag förstår faktiskt inte ändå varför det inte skulle funka? Vad får du för fel om du skriver:

Kod:
SELECT
     a
.Benämning
     
,l.Lagersaldo
FROM
     Artikeldata a
          LEFT JOIN Lagersaldo l 
               ON a
.Färg=l.Färg 
               
AND a.Storlek=l.Storlek
               
AND a.ArtikelNummer=l.ArtikelNummer 
Funkar fint... Vet inte varför jag höll på och dra in en massa paranteser
Tack för hjälpen!
Citera

Stöd Flashback

Flashback finansieras genom donationer från våra medlemmar och besökare. Det är med hjälp av dig vi kan fortsätta erbjuda en fri samhällsdebatt. Tack för ditt stöd!

Stöd Flashback