Gå til innhold

Anbefalte innlegg

Hei, jeg har to tabeller, ordre(ordreID, kundeID, ordredato) og ordrelinjer(linjeID, ordreID, artikkelnummer, beløp).

 

Hvordan kan jeg sette opp et spørring som returnerer feltene fra ordretabellen + summen av beløp for den aktuelle ordren (ordreID, kundeID, ordredato, totalbeløp)?

 

Jeg har prøvd med ulike joins, men skjønner at jeg mangler grunnleggende SQL-kunnskaper...

 

 

noccy

Lenke til kommentar
Videoannonse
Annonse

SELECT a.ordreID, a.kundeID, a.ordredato, SUM(b.beløp) as totalbeløp
FROM ordre a
LEFT JOIN ordrelinjer b ON a.ordreID = b.ordreID
GROUP BY a.ordreID, a.kundeID, a.ordredato

 

Brukte left join så du fikk med ordre uten ordrelinjer også. Hvis det ikke er ønskelig, bytt ut LEFT med INNER.

 

Spørringer som bruker aggregatfunksjoner (sum, count, avg, etc) må ha en GROUP BY clause som har med alle feltene fra SELECT clausen som ikke er med i aggregatfunksjoner.

 

For å slippe å skrive fulle tabellnavn rundt omkring i hele spørringen har jeg brukt aliaser:

FROM ordre a <-- vil si at du kan referere til tabellen ordre som a.

LEFT JOIN ordrelinjer b <-- vil si at du kan referere til tabellen ordrelinjer som b.

Endret av blackbrrd
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...