Avatar billede rassermus Nybegynder
10. marts 2006 - 06:38 Der er 14 kommentarer og
1 løsning

SQL-sætning der opsummerer nogle værdier - svar søges hurtigt!

Tabellen vurdering:
id
havneid
karakter

Tabellen havn
id
navn


Jeg vil gerne konstruere en smart SQL-sætning der returnerer følgende for alle havne:

havnens navn
summen af karakterer afgivet for den pågældende havn

...sorteret efter summen af karakterer.


Jeg håber maget, at der er en der kan hjælpe hurtigt, da jeg sidder og slider med at få det til at virke...


:-) Rasmus
Avatar billede mugs Novice
10. marts 2006 - 06:45 #1
SELECT havn.navn, Sum(vurdering.vurdering) AS SumOfvurdering
FROM vurdering INNER JOIN havn ON vurdering.havneid = havn.id
GROUP BY havn.navn
ORDER BY Sum(vurdering.vurdering) DESC;
Avatar billede rassermus Nybegynder
10. marts 2006 - 07:15 #2
WOW. Det var hurtigt! :-)

Du havde skrevet vurdering.vurdering og det skulle istedet være vurdering.karakter, men det kunne jeg selv gennemskue - flot ik'? ;-)

Hvor er jeg bare super glad for at have fået et svar så hurtigt - fantastisk.

Du er fandeme en haj!!!


:-) Rasmus
Avatar billede mugs Novice
10. marts 2006 - 07:17 #3
Tak for point - Ved fælles hjælp plejer vi at få det til at fungere :o)

God weekend.
Avatar billede rassermus Nybegynder
10. marts 2006 - 07:22 #4
Er det ikke sådan jeg tilgår data bagefter i ASP?

<%=rs("havn.navn")%>,<%=rs("SumOfvurdering")%>

Skal jeg ikke opfatte SumOfvurdering på den måde?


:-) Rasmus
Avatar billede mugs Novice
10. marts 2006 - 07:25 #5
Der er jeg svar skyldig - Har ingen forstand på ASP.

SumOgVurdering er jo blot en opsummering af feltet vurdering.
Avatar billede rassermus Nybegynder
10. marts 2006 - 07:27 #6
Jeg fik det til at virke. Jeg skulle naturligvis blot referere til navn og ikke havn.navn. Sorry!

God weekend til dig også!


:-) Rasmus
Avatar billede rassermus Nybegynder
10. marts 2006 - 07:43 #7
Undskyld, at jeg bliver ved med at spørge. Jeg vil gerne oprette et nyt spørgsmål, hvis det er besværligt...

Hvordan får jeg også havneid med i resultattabellen?


:-) Rasmus
Avatar billede rassermus Nybegynder
10. marts 2006 - 07:47 #8
Jeg kunne også godt tænke mig at få antallet afgivne vurderinger med ud.
Avatar billede mugs Novice
10. marts 2006 - 07:54 #9
Det er helt OK.

SELECT havn.navn, Sum(vurdering.vurdering) AS SumOfvurdering, Count(vurdering.havneid) AS AntalOfhavneid
FROM vurdering INNER JOIN havn ON vurdering.havneid = havn.id
GROUP BY havn.navn
ORDER BY Sum(vurdering.vurdering) DESC;

Jeg kan sende dig min testdb. Blot læg din e-mail
Avatar billede rassermus Nybegynder
10. marts 2006 - 21:15 #10
Hej Mugs.

Du behøver ikke at sende testdatabasen - det hele fungerer bare! Hvordan giver man karma her på sitet?

Kan man indsætte en WHERE i ovenstående sætning, så man kun får de vurderinger der er under ét år gamle?

Bare sig til, hvis jeg skal oprette et nyt spørgsmål, så du kan få points.


Indtil nu - tusind tusind tak for hjælpen - du har sparet mig for dages arbejde!!!

:-) Rasmus
Avatar billede rassermus Nybegynder
10. marts 2006 - 21:16 #11
... i tabellen vurdering er der et felt det hedder tidspunkt der indeholder tidspunktet for postens oprettelse.
Avatar billede mugs Novice
10. marts 2006 - 21:32 #12
SELECT havn.navn, Sum(vurdering.vurdering) AS SumOfvurdering, Count(vurdering.havneid) AS AntalOfhavneid, vurdering.hvornår, (DateDiff("yyyy",[hvornår],Date()))-1 AS Udtryk1
FROM vurdering INNER JOIN havn ON vurdering.havneid = havn.id
GROUP BY havn.navn, vurdering.hvornår, (DateDiff("yyyy",[hvornår],Date()))-1
HAVING ((((DateDiff("yyyy",[hvornår],Date()))-1)>=0))
ORDER BY Sum(vurdering.vurdering) DESC;

Hvor feltet hvornår er er datofelt i tabellen,

Du giver karma ved at trykke på brugernavnet.
Avatar billede rassermus Nybegynder
10. marts 2006 - 22:14 #13
Hold fest, hvor er du bare en haj til SQL.

Jeg er simpelthen fuldstændig faldet på halen over, at du kan samle alt det i én sætning.

WOW!

Jeg tænkte på, om jeg kunne få din mailadresse? Jeg har et lille firma der bl.a. arbejder med internetløsninger. Jeg ved ikke, om du ville være interesseret i en gang i mellem mod betaling at løse SQL-mysterier som dem du har løst her?

Jeg forestiller mig, at jeg kunne sende en mail med problemstillingen og så få svaret på samme måde. Det vil spare mig for rigtig meget tid og jeg vil gerne betale for den tid du bruger istedet for bare at "nasse" gratis tjenester som her i dag. :-)

:-) Rasmus
Avatar billede mugs Novice
10. marts 2006 - 22:29 #14
Rasmus:

Jeg er ikke nogen SQL-haj. Jeg har blot lavet en tstdb hvori jeg indsætter dinhe krav, og så vil Acces generere din SQL sætning. Normalt går jeg uden om alle spørgsmål, der specifikt er rettet mod en SQL sætning, idet jeg ikke har nok kendskab til dette emne.

Der er andre brugere der "gør i SQL", Ingen nævnt og ingen glemt. Men hvis du bevæger dig lidt rundt på sitet vil du finde brugere der langt bedre end jeg vil løse dine problemer.

Du må gerne få min mail-adresse, men jeg løser ikke problemer for penge. Du nasser ikke, idet jeg jo frivilligt har påtaget mig en opgave at hjælpe andre. Jeg er ikke progammør, og kan ikke uden videre løse problemer uden et forudgående arbejde. Min viden stammer udelukkende fra eksperten ved at studere de problemer, som andre brugere hat haft.

mugs@mail.dk
Avatar billede rassermus Nybegynder
11. marts 2006 - 08:40 #15
Jeg er i hvert fald virkelig virkelig glad for den hjælp, du har ydet.

Det har sparet mig for timers arbejde og en masse grå hår.

Tusind tusind tak!


:-) Rasmus
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester