Prozentanteil ausrechnen?

sqlfrage

Neuer Benutzer
Beiträge
4
Hallo zusammen,

ich habe eine Frage. Meine Aufgabenstellung lautet: Wie hoch war in 2013 insgesamt der Erststimmenanteil für die FDP?
Ich habe bereits alle nötigen Tabellen etc erstellt.

Mein derzeitiger Befehl lautet:
select sum((Erststimmenanzahl) from erreicht where Wahldatum='2013-09-22' and Partei='FDP'*100)/sum(Erststimmenanzahl) from erreicht where Wahldatum='2013-09-22';

Als Fehler wird angezeigt:
Meldung 156, Ebene 15, Status 1, Zeile 1
Falsche Syntax in der Nähe des from-Schlüsselworts.

Kann mir hier jemand helfen?

Vielen Dank im Voraus!
 
Werbung:
Eine Möglichkeit wäre
Code:
select sum((Erststimmenanzahl) from erreicht where Wahldatum='2013-09-22' and Partei='FDP'*100)
/ select sum(Erststimmenanzahl) from erreicht where Wahldatum='2013-09-22';
Aber eleganter (und schneller) wäre eine andere Lösung:
Code:
SELECT   sum( CASE WHEN Partei='FDP' THEN Erststimmenanzahl * 100 ELSE 0 END ) / sum(Erststimmenanzahl)
FROM   erreicht
WHERE   Wahldatum='2013-09-22';
Auch dein Tabellendesign macht einen merkwürdigen Eindruck, ich mag mich täuschen.
 
super das hat geklappt dankeschön!
Als Ergebnis ist jetzt "2" rausgekommen. Es müsste eigentlich 2,38 rauskommen. Kann man noch durch numeric o.ä. ergänzen, dass die Nachkommastellen auch angezeigt werden?
 
Werbung:
Du musst eigentlich nur einen der beiden Werte vorher per cast() oder convert() zu einem Dezimalen Wert machen dann rechnet er auch mit Dezimal weiter
Code:
SELECT cast( sum( CASE WHEN Partei='FDP' THEN Erststimmenanzahl * 100 ELSE 0 END ) AS NUMERIC(10,,2)) / sum(Erststimmenanzahl)
FROM erreicht
WHERE Wahldatum='2013-09-22';
 
Zurück
Oben