Ich verstehe nicht, warum meine Lösung nicht funktioniert.Summe und Join in Sql
Ich versuche, die Anzahl der Mitarbeiter nach Abteilung in einer Datenbank zu zählen.
Es gibt zwei Tabellen:
CREATE TABLE DEPARTMENT
(
NAME VARCHAR(32) NOT NULL,
ID INT NOT NULL PRIMARY KEY
);
CREATE TABLE EMPLOYEE
(
NAME VARCHAR(32) PRIMARY KEY NOT NULL,
DEPARTMENT INT NOT NULL REFERENCES DEPARTMENT(ID)
);
und ich habe einen Blick zu zeigen, die Anzahl der Mitarbeiter in Abteilungen geschaffen.
CREATE
OR REPLACE VIEW VIEW_NB AS
SELECT
DEPARTMENT.NAME AS DEPARTEMENT,
count(*) AS nb
FROM
DEPARTMENT
LEFT JOIN
EMPLOYEE
ON DEPARTMENT.ID = EMPLOYEE.DEPARTMENT
GROUP BY
DEPARTMENT.ID,
DEPARTMENT.NAME;
SELECT
ADD_DEPARTMENT('FRANCE', 10);
SELECT
ADD_DEPARTMENT('SPAIN', 100);
SELECT
ADD_EMPLOYEE('JOSE', 10);
Ergebnis ist
departement | nb
-------------+----
FRANCE | 1
SPAIN | 1
aber es sollte
seindepartement | nb
-------------+----
FRANCE | 0
SPAIN | 1
ich verstehen die Notwendigkeit, verwenden links verbindet. Allerdings hat meine Ansicht mindestens 1 Mitarbeiter für jede Abteilung, auch wenn sie keinen Mitarbeiter haben.
Habe ich etwas übersehen? Wenn ja was?