|  | 		    
					
        
         
          
         
	
          | |  | 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
 
 
 
 |  |  | 
 |  |