[SQL] Zit in de knoei met een SUM() functie

Pagina: 1
Acties:

  • fredmanders
  • Registratie: Augustus 2002
  • Laatst online: 20-01 21:47
Op dit moment heb ik twee tabellen, die zien er zo uit:

tblStageplekken
StageId .. enz
1
2
3
4
5
6
7
8
9
10

tblStudenten
enz .. KeusEen KeusTwee KeusDrie .. enz
3 7 4
5 4 7
5 6 2
enzovoorts

Uiteindelijk moet daar een tabel uitkomen, die mij gewoon verteld hoe vaak een stageid voorkomt in de tabel studenten. Het is me wel gelukt om dit van de keuzes apart te doen, maar niet allemaal tegelijk in een tabel.
Heb nu dus dit:

SELECT KeusEen, Count(*) as Modus
FROM studenten
GROUP BY KeusEen
ORDER BY Modus

En als resultaat dus dit:
tblKeusEen
StageId Modus
2 1
4 1
1 2
enz..

Natuurlijk ben ik ook realist en weet niet iedereen is idealist, de meesten zijn zelfs egoist, maar stel je eens op als altruist, je hebt geen idee wat je mist..


Verwijderd

Dat komt omdat je datamodel niet goed genormaliseerd is. Je had eigenlijk een koppeltabel moeten maken tussen studenten en stages, want zoals het nu eruit ziet kan je het alleen maar met broddelwerk oplossen.

  • fredmanders
  • Registratie: Augustus 2002
  • Laatst online: 20-01 21:47
Het is nog niet te laat, zit nog in de testfase, met 10 records per tabel, dus een koppeltabel moet nog wel kunnen..
Maar er is geen SQL die dit kan regelen?

Natuurlijk ben ik ook realist en weet niet iedereen is idealist, de meesten zijn zelfs egoist, maar stel je eens op als altruist, je hebt geen idee wat je mist..


  • dusty
  • Registratie: Mei 2000
  • Laatst online: 21-02 00:06

dusty

Celebrate Life!

Zolang er een regel is dat een stageplek maar een keer per student opgegeven mag worden, is er geen probleem, buiten het feit dat je database model dus erg belabberd is.

code:
1
2
3
4
5
6
7
8
9
10
SELECT StageId , Count(StudentID) as AantalStudenten
FROM tblStageplekken, tblStudenten
where
(StageID=KeusEen)
or
(StageID=KeusTwee)
or
[yaddayaddayadda]
GROUP BY StageId
order by Count(StudentID)

Maar is dus absoluut af te raden, dus ga normaliseren en gebruik een juiste databasemodel.

[ Voor 7% gewijzigd door dusty op 25-01-2006 21:15 ]

Back In Black!
"Je moet haar alleen aan de ketting leggen" - MueR