SQL Abfrage

drogba941

Benutzer
Beiträge
9
Ich habe es Probiert kann aber mit Fehlermeldungen wie:
"FUNCTION db_9_289df4.COUNT does not exist. Check the 'Function Name Parsing and Resolution' section in the Reference Manual"
nichts anfangen und möchte auch eigentlich gar nicht so tief in die Materie. Daher hätte ich mich sehr gefreut nach so vielen Ansätzen zu erfahren wie es richtig aussieht da ich es so definitiv besser gelernt hätte wie mich stundenlang an falschen dingen auszuprobieren. Schade hatte echt Hoffnungen hier.
 
Werbung:

akretschmer

Datenbank-Guru
Beiträge
9.612
Code:
postgres=# create table patient(pid int generated always as identity primary key, name text not null);
CREATE TABLE
postgres=# create table behandlung(bid int generated always as identity primary key, patient int references patient, datum date);
CREATE TABLE
postgres=# insert into patient (name) values ('Meier');
INSERT 0 1
postgres=# insert into patient (name) values ('Müller');
INSERT 0 1
postgres=# insert into behandlung (patient, datum) values (1, '2021-08-01');
INSERT 0 1
postgres=# insert into behandlung (patient, datum) values (1, '2022-04-01');
INSERT 0 1
postgres=# insert into behandlung (patient, datum) values (2, '2022-03-01');
INSERT 0 1
postgres=# insert into behandlung (patient, datum) values (2, '2022-05-01');
INSERT 0 1
postgres=# select name, count(*) from patient p left join behandlung b on p.pid=b.patient where b.datum between '2022-01-01' and '2023-01-01' group by name;
  name   | count 
---------+-------
 Meier   |     1
 Müller |     2
(2 rows)

postgres=#

geht es Dir nun besser?
 
Werbung:

ukulele

Datenbank-Guru
Beiträge
4.690
count() und sum() sind Aggregate. Um eine Tabelle zu aggregieren muss jede Spalte, die im Select vorkommt, entweder aggregiert oder gruppiert werden. - Ganz simpler Grundsatz, immer zu befolgen.

1a) ist also:
GROUP BY Nachname, Vorname

2b) ist also:
GROUP BY K_ID, Firma, Bezeichnung

Ein Semikolon steht immer am Ende eines Querys, also hinter dem GROUP BY. Das sind alles so Dinge die dir SQL sofort ankreidet und das halt ziemlich exakt. Solche simplen Fehler wirst du nur machen wenn du SQL total theoretisch behandelst und nicht mal die Syntax-Prüfung bemühst. Kann man machen - wird halt scheiße...
 
Oben