Abfrage - COUNT und INNER JOIN

foerster7891

Benutzer
Beiträge
9
SELECT Studiengaenge.Studiengang, COUNT(Nutzer.Studenten)
FROM Studiengaenge
INNER JOIN Nutzer
ON Nutzer.Studiengang = Studiengaenge.StudiengangID
WHERE Studiengaenge.Studiengang = 'IMT', Studiengaenge.Studiengang = 'Informatik', Studiengaenge.Studiengang = 'eBusiness'

Joar ich hab am Ende einfach alles was ich will hintereinander geschrieben weil ich nicht wußte wie ich es richtig machen muss.
Eigentlich will ich dieses Ergebnis:
Informatik - 4
IMT - 3
eBusiness - 2

eben die Studiengänge und die Anzahl der Studenten dazu.

MfG
foerster7891
 
Werbung:

akretschmer

Datenbank-Guru
Beiträge
9.846
SELECT Studiengaenge.Studiengang, COUNT(Nutzer.Studenten)
FROM Studiengaenge
INNER JOIN Nutzer
ON Nutzer.Studiengang = Studiengaenge.StudiengangID
WHERE Studiengaenge.Studiengang = 'IMT', Studiengaenge.Studiengang = 'Informatik', Studiengaenge.Studiengang = 'eBusiness'

Joar ich hab am Ende einfach alles was ich will hintereinander geschrieben weil ich nicht wußte wie ich es richtig machen muss.


Was Du versuchst mal als beispiel, damit Du vielleicht besser siehst, was falsch ist:

Code:
test=*# create table foo (i int, condition int);
CREATE TABLE
Time: 108,650 ms
test=*# insert into foo values (1,2);
INSERT 0 1
Time: 0,417 ms
test=*# select * from foo where condition=1,condition=2,condition=3;
ERROR:  syntax error at or near ","
LINE 1: select * from foo where condition=1,condition=2,condition=3;

Eigentlich ist die Fehlermeldung doch klar, oder? Und auch der logische Fehler, oder? Zeigt Deine DB Dir nicht an, was falsch ist?

Okay, um es richtig zu machen hast Du mind. 2 Wege:

Code:
test=*# select * from foo where condition=1 or condition=2 or condition=3;
 i | condition
---+-----------
 1 |         2
(1 row)

Time: 34,813 ms
test=*# select * from foo where condition in (1,2,3);
 i | condition
---+-----------
 1 |         2
(1 row)
 

ukulele

Datenbank-Guru
Beiträge
4.702
Eigentlich sollte das fast schon laufen:
Code:
SELECT    Studiengaenge.Studiengang,
        count(Nutzer.Studenten) AS Anzahl
FROM    Studiengaenge
INNER JOIN Nutzer ON Nutzer.Studiengang = Studiengaenge.StudiengangID
WHERE    Studiengaenge.Studiengang = 'IMT'
OR        Studiengaenge.Studiengang = 'Informatik'
OR        Studiengaenge.Studiengang = 'eBusiness'
GROUP BY Studiengaenge.Studiengang

PS: Oder natürlich Studiengaenge.Studiengang IN ('Wert1','Wert2','Wert3'). Wichtig ist aber auch der GROUP BY Teil.
 
Werbung:
Oben