noccy Skrevet 18. april 2008 Del Skrevet 18. april 2008 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
blackbrrd Skrevet 19. april 2008 Del Skrevet 19. april 2008 (endret) 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 19. april 2008 av blackbrrd Lenke til kommentar
noccy Skrevet 20. april 2008 Forfatter Del Skrevet 20. april 2008 Tusen takk noccy Lenke til kommentar
Anbefalte innlegg
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 kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå