steinih Skrevet 24. april 2002 Del Skrevet 24. april 2002 Hei skulle hatt litt hjelp her... Har en tabell der noe er sortert i mengde etter max til min... Det som er problemet er at jeg skulle ha fått henta ut de 10 øverste i denne tabellen vha en SQL spørring. Er det noen som vet hvordan jeg kan løse dette på en enklel måte? Ev hvilken metode som kan brukes til dette. (bruker Oracle 7) /steinih :smile: Lenke til kommentar
steinih Skrevet 24. april 2002 Forfatter Del Skrevet 24. april 2002 Kan jo legge ved litt mere informasjon da: SQL spørringa jeg bruker for å få det sortert etter mengde er følgende: select vinbestilling.vinid,sum(vinbestilling.antall)as ANTALL_KASSER from vinbestilling,vinregister group by vinbestilling.vinid order by ANTALL_KASSER desc Det er altså et bestillingssystem for vinder det dreier seg om. Etter spøringa over før jeg lista ut følgende: VINID ANTALL_KAS ------ ---------- 122 1350 82 810 121 720 61 90 101 45 Og det som da er problemer er hvordan skal jeg klare å hente ut bare de 10 øverste i tabbellen? DVS etter jeg har lagt inn flere viner da... det hadde vert fint om noen kunne hjelpe meg med hvordan jeg skal løse dette ev. hvilken funksjon jeg kan bruke. /steinih :smile: Lenke til kommentar
steinih Skrevet 24. april 2002 Forfatter Del Skrevet 24. april 2002 Er det ingen som kan hjelpe meg med det her? steinih :smile: Lenke til kommentar
EC Skrevet 24. april 2002 Del Skrevet 24. april 2002 select vinbestilling.vinid,sum(vinbestilling.antall)as ANTALL_KASSER from vinbestilling,vinregister group by vinbestilling.vinid order by ANTALL_KASSER desc limit 10; Værsågod! :smile: Lenke til kommentar
Ola PeK Skrevet 24. april 2002 Del Skrevet 24. april 2002 På mysql.org stod det at LIMIT var ein MySQL-spesifikk kommando. I Oracle ser det ut til at du må bruke 'rownum', altså noko slikt som dette: SELECT TITLE FROM BOOK WHERE ROWNUM <= 5 ORDER BY TITLE DESC Lenke til kommentar
trygberd Skrevet 24. april 2002 Del Skrevet 24. april 2002 For det første ser kodebiten slik ut. select vinid,sum(antall)as ANTALL_KASSER from vinbestilling group by vinbestilling.vinid order by ANTALL_KASSER desc; Og for det andre bruker vi oracle7 og da funker ikke limit. Jeg har prøvd og lage et view jeg kan hente de 10 øverste fra og jeg har prøvd med subqueries, men er ****meg ingenting som funker, og jeg tror det er oracle7 sin feil :smile: Lenke til kommentar
steinih Skrevet 24. april 2002 Forfatter Del Skrevet 24. april 2002 limit? Har du drevet noe serlig med databaser eller? det funka ihvertfall ikke i det heletatt! /steinih :smile: Lenke til kommentar
steinih Skrevet 24. april 2002 Forfatter Del Skrevet 24. april 2002 Det har jo ikke noe å si i den sammenhengen da Trygberd! Og vet at koden ser slik ut: select vinid,sum(antall)as ANTALL_KASSER from vinbestilling group by vinid order by ANTALL_KASSER desc /steinih Lenke til kommentar
trygberd Skrevet 24. april 2002 Del Skrevet 24. april 2002 En som har drevet litt med databaser vet jo selvsagt at limit funker bl.a i mysq....... Itj sannt stein ivar? :smile: -Trygve [ Denne Melding var redigert av: trygberd på 2002-04-24 16:28 ] Lenke til kommentar
steinih Skrevet 24. april 2002 Forfatter Del Skrevet 24. april 2002 ROWNUM < 11 ville ha funka hvis vi henta det fra en spesifik tabell, men poenget her er at alt dette skulle ha blitt gjort i en spørring slik at vi ikke må "mellomlagre" det i en ny tabell. Flere tips? /steinih Lenke til kommentar
steinih Skrevet 24. april 2002 Forfatter Del Skrevet 24. april 2002 Ja selvfølgelig Trygve, men ikke i Oracle!!! :smile: Lenke til kommentar
Mefix Skrevet 24. april 2002 Del Skrevet 24. april 2002 Jeg trodde ROWNUM fungerte i forhold til returnerte verdier, ikke i forhold til tabellen det spørres fra..? Lenke til kommentar
steinih Skrevet 24. april 2002 Forfatter Del Skrevet 24. april 2002 Får ikke til å bruke ROWNUM etter at tabellen er sortert etter solgtmengde.. Får bare til å bruke det før sorteringen og da er jo noe av poenget borte siden du da bare vil få med de 10 på topp før det er sortert. Dette vil da medføre at det ikke vil være de 10 mest solgte vinene som er i lista... /steinih Lenke til kommentar
steinih Skrevet 24. april 2002 Forfatter Del Skrevet 24. april 2002 Har faktisk klart å fixe det :smile: Etter mye om og men fant vi ut at vi skulle bruke VIEW... Nå mangler vi bare å få med vinnavnene i den endelige topp 10 lista... Hadde en idé, men det ble vist litt feil... Endte opp med at den lista opp alle vinene på hver vinid...Noe somegentlig ikke skal være mulig da men... Får prøve videre... /steinih Lenke til kommentar
Yoda Skrevet 24. april 2002 Del Skrevet 24. april 2002 Har du prøvd med følgende : select top 10 vinbestilling.vinid osv. Er ikke sikker på at top er mulig i Oracle :smile: Yoda Lenke til kommentar
steinih Skrevet 25. april 2002 Forfatter Del Skrevet 25. april 2002 Tror nok ikke det er mulig nei, men har fått fixa det nå... Takker alle for gode forslag :smile: :smile: :smile: /steinih Lenke til kommentar
javaxswim Skrevet 16. mai 2002 Del Skrevet 16. mai 2002 Hadde det ikke vært en ide å vise løsningen steinh? 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å