Avatar billede -sofus- Nybegynder
20. marts 2003 - 23:34 Der er 4 kommentarer og
1 løsning

Jeg har lige nogle mindre problemer med en SQL string.

Min database

Først har jeg en holdoversigt
Alle klaner har en klan_kode som er unik og referet til kamp programet.
T_Klaner: Klan_id | Klan_navn | Klan_kode |

Her har vi så alle kampene, den henter klan navn fra hold oversigten via klan_kode

T_Kampe: Kamp_id | Kamp_klan1_kode | Kamp_klan2_kode | Kamp_klan1_score|Kamp_klan2_score|

Jeg vil gerne have en oversigt der ser sådan ud:
Klannavn | antal kampe | vundne runder | tabte runder |

Her er min SQL string.

SELECT Klan_navn, Count(Kamp_id) AS Antal_kampe, Sum(Kamp_klan1_score) AS Vudne_runder, Sum(Kamp_klan2_score) AS Tabte_runder
FROM T_Klaner, T_Kampe
WHERE kamp_klan1=Klan_kode OR kamp_klan2=Klan_kode
GROUP BY Klan_navn
ORDER BY vudne_runder DESC

Den virker bare ikke helt rigtigt, fordi hvis f.eks holder AAA er udfordre står de som "kamp_klan2" og derfor er  kamp_klan1_score tabte runder.

Håber i forstår hvad jeg mener, jeg er selv stået af.
Avatar billede keysersoze Ekspert
20. marts 2003 - 23:57 #1
ikke helt med - hvad får du af resultat og hvad skal det være?
Avatar billede -sofus- Nybegynder
21. marts 2003 - 00:00 #2
Eksempel:

AAA spiller mod BBB kampen bliver 10-5
BBB spiller mod CCC kampen bliver 8-7

Så har BBB vundet 13 runder og tabt 17 runder.

Men min kode tager altid det første resultat som vundet og det næste som tabt
Så den tror at BBB har vundet 18 runder og tabt 12
Avatar billede keysersoze Ekspert
21. marts 2003 - 00:35 #3
hmm - umiddelbart vil jeg mene at det først og fremmest er en forkert database-struktur du har lavet...

umiddelbart tror jeg ikke du kan løse det på sql-niveau med kun én sql hvis du vil beholde den nuværende db-struktur - men måske skal over og bruge 2 eller måske endda 3 sql'er;

- 1 hvor du først vælger klanen
- 1 hvor du tæller tabte og vunde hvor klanen er på kamp_klan2
- 1 hvor du tæller tabte og vunde hvor klanen er på kamp_klan1

det er mit første umiddelbare gæt
Avatar billede -sofus- Nybegynder
21. marts 2003 - 11:55 #4
Problemer er bare at hvis jeg laver det som flere SQL så kommer ORDER by ikke til at virke, dvs at når den laver listen tager den summen af forskellige tal og ikke for de tal der hører til det rigtige hold.

Jeg har også leget lidt med at ændre database strukturen, men jeg kan ikke se nogen smartere opbygning end den jeg har.
Avatar billede -sofus- Nybegynder
21. marts 2003 - 14:09 #5
Lukket har ført den vidre i
http://www.eksperten.dk/spm/331654
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
Kurser inden for grundlæggende programmering

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