09. august 2005 - 09:47Der er
6 kommentarer og 3 løsninger
Få MAX af SUM
Hvordan får jeg MAX() ud af en SUM()?
$tmpressql="SELECT SUM(e.antal) AS mest, k.vare_tekst AS vare FROM kmpv_kmpkamp k, kundeordrer e WHERE k.levnr='" . $levnr . "' AND k.varenr=e.varenr AND k.ugenr='" . $uge . "' AND mest=(SELECT MAX(mest) FROM kundeordrer)";
Det er kolonnen antal der først skal summeres og derefter skal MAX findes.
Prøvede med en anden forespørgsel hvor det virkede, men der kunne jeg KUN få MAX ud, og ingen anden data.
Den her fungerer, men der bliver jo kun "mest" udskrevet. SELECT MAX(antal) AS mest FROM(SELECT SUM(e.antal) AS antal FROM kmpv_kmpkamp k, kundeordrer e WHERE k.levnr='106294' AND k.varenr=e.varenr AND k.ugenr='34' GROUP BY e.varenr)
Jaja, det er jeg tvunget til at have. Ellers kan den slet ikke få hul ;o)
Hvorfor skal man have alt med når man grupperer???Det er ikke nok at gruppere på kun den kolonne man behøver.
$tmpressql="SELECT * FROM(SELECT SUM(e.antal) AS mest, k.vare_tekst FROM kmpv_kmpkamp k, kundeordrer e WHERE k.levnr='" . $levnr . "' AND k.varenr=e.varenr AND k.ugenr='" . $uge . "' GROUP BY e.varenr, k.vare_tekst ORDER BY mest DESC) WHERE rownum=1";
Nej den gik ikke. Så skriver den bare et 1-tal hver gang (på summen). Den første fungerede, men hvorfor kan man ikke bare GROUP BY e.antal. Hvorfor skal k.vare_tekst også grupperes?
Den der ikke fungerede:
$tmpressql="SELECT SUM(e.antal) AS mest, k.vare_tekst, e.varenr FROM kmpv_kmpkamp k, kundeordrer e WHERE k.levnr='" . $levnr . "' AND k.varenr=e.varenr AND k.ugenr='" . $uge . "' AND rownum=1 GROUP BY e.varenr, k.vare_tekst ORDER BY mest DESC";
Jeg ved ikke hvorfor du har varetekst med i din group by, men syntaxen der skal overholdes er
select a, b, sum(antal) from tabel group by a, b
du skal have a og b med både i select ... og group by ...
Du kan ikke sætte "rownum = 1" ind før group by og order by, for så læses du kun een række for din join. Det du ønsker er at læse een rækker efter group og order og derfor skal placeres i den yderste select som i mit første svar
Ja, og det fungerer. Tak for hjælpen. Men forstår stadig ikke hvorfor Oracle vil have alle de kolonner man vælger, med i grupperingen ;o)
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.