/ Forside / Teknologi / Udvikling / ASP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
ASP
#NavnPoint
smorch 9259
Harlekin 1866
molokyle 1040
Steffanst.. 758
gandalf 657
smilly 564
gibson 560
cumano 530
MouseKeep.. 480
10  Random 410
Group by - Fodboldstilling
Fra : rane


Dato : 30-10-03 15:00

Jeg har en fodbold-tabel der indeholder følgende:

| KampID | RundeNr | HjemmeholdID | UdeholdID | HjemmeMaal | UdeMaal | HjemmePts | UdePts|

KampID = Autonummering
RundeNr = Tal
HjemmeholdID = 101 til 116 (der er 16 hold)
UdeholdID = samme som ovenstående
HjemmeMaal = tal (antal mål scoret af hjemmeholdet i den kamp)
UdeMaal = tal (mål scoret af udeholdet)
HjemmePts = tal, 3, 1 eller 0 (points til hjemmeholdet i den kamp)
UdePts = samme
---
Dvs. hver række er info til 1 fodboldkamp.
---

Ud fra ovenstående vil jeg gerne have udarbejdet en tabel stilling,
dvs:

1. Hold103 15 Points ialt (evt. vundne, uafgjorte og tabte kampe)
2. Hold116 14 Points ialt (evt. vundne, uafgjorte og tabte kampe)
2. Hold107 11 Points ialt (evt. vundne, uafgjorte og tabte kampe)
....osv.

Det "tricky" her er at få lagt Hjemmebane resultater sammen med
Udebane resultater - og få udtrukket stillingen på den måde.

100 points til den der kan hjælpe med den nemmeste og hurtigste
løsning, der virker. 200 points til den, der kan hjælpe med en udvidet
løsning (dvs. vundne, uafgjorte og tabte kampe bliver udregnet og
skrevet ned også).

Regner med der skal bruges noget GROUP BY og ORDER BY - men det kan
vel ikke laves i én SQL-sætning?

mvh
Rene

(Dette indlæg har jeg også postet på eksperten.dk som et 200pts
spørgsmål)

 
 
Torben Brandt (30-10-2003)
Kommentar
Fra : Torben Brandt


Dato : 30-10-03 23:36

rane skrev:
> Jeg har en fodbold-tabel der indeholder følgende:
>
> | KampID | RundeNr | HjemmeholdID | UdeholdID | HjemmeMaal | UdeMaal | HjemmePts | UdePts|
>
> Ud fra ovenstående vil jeg gerne have udarbejdet en tabel stilling,
> dvs:
>
> 1. Hold103 15 Points ialt (evt. vundne, uafgjorte og tabte kampe)
> 2. Hold116 14 Points ialt (evt. vundne, uafgjorte og tabte kampe)
> 2. Hold107 11 Points ialt (evt. vundne, uafgjorte og tabte kampe)
> ...osv.

Jeg har bikset mig sammen til dette:
SELECT
holdid,
SUM(pts) AS points,
SUM(vnd) AS vundne
FROM
(
SELECT
hjemmeholdid AS holdid,
SUM(hjemmepts) AS pts,
- SUM(hjemmepts = 3) AS vnd
FROM Kampe
GROUP BY hjemmeholdid

UNION

SELECT
udeholdid AS holdid,
SUM(udepts) AS pts,
- SUM(udepts = 3) AS vnd
FROM Kampe
GROUP BY udeholdid
)
GROUP BY holdid
ORDER BY SUM(pts)

Du kan selv tilføje linier for uafgjorte og tabte kampe.

I Access 2003 (jeg antager du bruger Access - ?) svarer True til -1 og
False til 0, hvilket jeg benytter i
- SUM(hjemmepts = 3)
som så bliver antallet af gange hjemmepts er 3, dvs en sejr.
Er ikke klar over om det samme gælder, når man spørger fra ASP.

> 100 points til den der kan hjælpe med den nemmeste og hurtigste
>
> (Dette indlæg har jeg også postet på eksperten.dk som et 200pts
> spørgsmål)

Ja, men du kunne jo have klippet afsnittet med pointgivning væk...

Jeg har sat FUT til <news:dk.edb.database>, da det mest omhandler sql.

mvh Torben


Torben Brandt (30-10-2003)
Kommentar
Fra : Torben Brandt


Dato : 30-10-03 23:42

Torben Brandt skrev:
> Jeg har sat FUT til <news:dk.edb.database>, da det mest omhandler sql.

Tja, og så satte jeg FUT til <news:dk.edb.database.ms-access>, så vælg
selv...

(Intet FUT i dette indlæg)

/Torben


Søg
Reklame
Statistik
Spørgsmål : 177550
Tips : 31968
Nyheder : 719565
Indlæg : 6408823
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste