23. juni 2008 - 12:27Der er
1 kommentar og 1 løsning
Vælg laveste pris
Hej exp,
Jeg har nedenstående SQL kode, men har et problem i det der kan være flere "pp.produktNr" med forskellige priser. Hvordan vælges det produkt med den laveste pris? (kan man evt. bytte pp.pris ud med MIN(pp.pris)?)
SELECT navn, SUM(pp.pris * od.antal *(1-od.rabat)) AS oms, Count(o.ordreNr) as antal_ordre, SUM(pp.pris * od.antal *(1-od.rabat)) / Count(o.ordreNr) AS gns FROM Ordre o, Ordredetaljer od, Produkter p, Produktpriser pp Kunder k WHERE k.kundeNr = o.kundeNr AND o.ordreNr = od.ordreNr AND od.produktNr = pp.produktNr AND o.opr_dato BETWEEN 01-01-2008 AND 31-12-2008 GROUP BY k.kundeNr
Teknologi, AI og forretning er i centrum på Computerworlds Cloud og AI Festival i København d. 18. og 19. september. Se hele programmet for den store konference om strategisk brug af Cloud og AI på: www.cloud-festival.dk
Du kan eventuelt tilføje en "ORDER BY", altså sådan her: "ORDER BY pris ASC". Synes ikke jeg kan se at du har brugt den, men kunne være et forslag. "ASC" fortæller den at den skal starte fra laveste værdi og gå op ad. Hvis det vender forkert kan du prøve med "DESC".
Du har selv svaret, altså du skal genske rigtigt benytte MIN():
SELECT navn, SUM(MIN(pp.pris) * od.antal *(1-od.rabat)) AS oms, Count(o.ordreNr) as antal_ordre, SUM(MIN(pp.pris) * od.antal *(1-od.rabat)) / Count(o.ordreNr) AS gns FROM Ordre o, Ordredetaljer od, Produkter p, Produktpriser pp Kunder k WHERE k.kundeNr = o.kundeNr AND o.ordreNr = od.ordreNr AND od.produktNr = pp.produktNr AND o.opr_dato BETWEEN 01-01-2008 AND 31-12-2008 GROUP BY k.kundeNr
Synes godt om
Ny brugerNybegynder
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.