frheimen Skrevet 5. juni 2008 Del Skrevet 5. juni 2008 Jeg har to tabeller. Tabellnavn: poeng poeng_id ansatt_id ant snitt wrap 1 1 2 5 7 2 4 3 4 5 3 4 1 2 3 4 2 1 1 8 Tabellnavn: ansatte ansatt_id ansatt_navn 1 per 2 pål 3 knut 4 arne Jeg trenger en spørring som henter ut navn i ansatte-tabellen og jeg trenger en totalscore for ant+snitt+wrap. Slik at den lister sortert i rekkefølge høyest til lavest. 1. arne 17 2. per 14 3. pål 10 4. knut 0 Legg merke til at arne har to oppføringer i poeng-tabellen og det er totalen av alle jeg vil ha som vist over. Setter veldig stor pris på om noen kan hjelpe meg med en slik spørring da jeg har prøvd alt for lenge uten suksess. Mvh Frode Lenke til kommentar
kaffenils Skrevet 6. juni 2008 Del Skrevet 6. juni 2008 Setter veldig stor pris på om noen kan hjelpe meg med en slik spørring da jeg har prøvd alt for lenge uten suksess. Jeg kunne selvfølgelig gitt deg svaret, men først er jeg interessert i å se hva du har prøvd selv. Lenke til kommentar
frheimen Skrevet 6. juni 2008 Forfatter Del Skrevet 6. juni 2008 Setter veldig stor pris på om noen kan hjelpe meg med en slik spørring da jeg har prøvd alt for lenge uten suksess. Jeg kunne selvfølgelig gitt deg svaret, men først er jeg interessert i å se hva du har prøvd selv. Nå er dette bare en liten sak for å forenkle en oppgave på jobben og ikke noe stor dokumentert prosjekt, så jeg har ikke noe kodehistorikk til å gi deg de nøyaktige kombinasjoene jeg har prøvd, men har prøvd med left join, inner join i diverse varianeter. Joining har jeg aldri hatt taket på, og har normalt holdt meg til noen varianter som fungerer i de fleste tilfellene, men her kom jeg ikke videre da jeg må summere for å få lage rekkefølgen. Alterntivet jeg har vurdert er å lage en egen scoretabell og en cronjobb som regner ut. Da klarer jeg det nok, men jeg tror det skal være mulig å få det til med en spørring. Lenke til kommentar
kaffenils Skrevet 6. juni 2008 Del Skrevet 6. juni 2008 Prøv denne select a.ansatt_id, a.ansatt_navn coalesce(sum(coalesce(p.ant,0)+coalesce(p.snitt,0),coalesce(p.wrap,0)),0) as sum from ansatte a left join poeng p on a.ansatt_id=p.ansatt_id group by a.ansatt_id, a.ansatt_navn order by 3 desc Lenke til kommentar
frheimen Skrevet 12. juni 2008 Forfatter Del Skrevet 12. juni 2008 Prøv denne select a.ansatt_id, a.ansatt_navn coalesce(sum(coalesce(p.ant,0)+coalesce(p.snitt,0),coalesce(p.wrap,0)),0) as sum from ansatte a left join poeng p on a.ansatt_id=p.ansatt_id group by a.ansatt_id, a.ansatt_navn order by 3 desc - Takk for hjelpen. Ikke bare fikk jeg løst problemet, men jeg fikk en aha-opplevelse i forhold til joining, som gjør at jeg nå fikk en helt annen forståelse Supert. 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å