summen af de højeste og laveste værdier? Hvordan definerer du hvad de højeste og laveste er? Det her tager summen af alle Select Sum(point) From tabel Du kan også finde maks og min som Select Max(point) From tabel og Select Min(point) From tabel Hvis de højeste er defineret som dem der er over halvdelen af max kunne du således finde de to summer som Select Sum(point) From tabel where point >= Max(point)/2 og Select Sum(point) From tabel where point < Max(point)/2
nej ikke specielt og i eksemplet ligner det at du ganger den højeste med nul og den næsthøjeste med en og den tredie højeste med to osv...forstår det ikke helt
ok når man ganger hedder det ikke summen men produktet ;o) Skal det forståes som om du har 15 rækker med point og du vil gange antallet med det største og det mindste point?
Select Count(Max(point)) From tabel Select Count(Min(point)) From tabel De vil give dig det antal det største point forekommer og det antal gange det mindste point forekommer Dernæst er det så blot at gange dette tal med henholdsvis det største og mindste point
jeg har variabelt antal rækker og variablet antal point. I dette tilfælde har jeg 45 rækker ialt. 15 af rækkerne har 10point, 15 har 20 point og 15 har 30 point.
resultatet skal være det lavest og højest mulige antal point
busschou >> hvis man har 15 rækker med point-værdien 10, så er det vel det samme som at gange med 15, men det er vel stadig summering hvis man lægger dem samme 2 ad gangen... 2+2+2+2 = 2*4 = 8 :)
ok så vil jeg næsten tro du kan gøre som jeg og fennec siger til sidst Men men Hvis du mener højest og lavest muligt Så er 30*20 jo større end 10*30 Så vil du skulle bruge noget ala select max(pointSum) from (Select Count(point)*point as pointSum From tabel group by point) og tilsvarende med min
jamen så vil jeg lægge et svar iøvrig er det kun fordi du ikke har et felt "point" for det har vi jo kaldt "pointSum" :o) Så om du benytter rs1(0) eller rs1("pointSum") burde være et fedt :o)
Bare rolig, jeg ved du har givet dine point, og busschou har fortjent dem :-) Men jeg kan alligevel ikke lade være med (lidt sent) at give mit besyv med.
Var det ikke nemmest at lade SQL gøre hele arbejdet? Jeg ved ikke hvilken database du benytter, men hvis du bruger Access kan du f.eks. bruge en SQL som denne:
SELECT 'Bedste 3' AS bd, sum(Point) AS PointIalt FROM [SELECT TOP 3 * FROM Tabel ORDER BY Id DESC]. AS tmp GROUP BY 'Bedste 3' UNION SELECT 'Dårligste 3' AS bd, sum(Point) AS PointIalt FROM [SELECT TOP 3 * FROM Tabel ORDER BY Id]. AS tmp GROUP BY 'Dårligste 3'
Hvis du bruger SQL server bruges der vist alm. paranteser i stedet for [
SELECT 'Bedste 3' AS bd, sum(Point) AS PointIalt FROM (SELECT TOP 3 * FROM Tabel ORDER BY Id DESC) AS tmp GROUP BY 'Bedste 3' UNION SELECT 'Dårligste 3' AS bd, sum(Point) AS PointIalt FROM (SELECT TOP 3 * FROM Tabel ORDER BY Id) AS tmp GROUP BY 'Dårligste 3'
MySQL forstår vist ikke TOP instruktionen, men bruger LIMIT i stedet.
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.