SQL Abfrage

drogba941

Benutzer
Beiträge
9
Hi Leute! Ich bin totaler SQL Anfänger und habe zwei SQL Aufgaben, wo ich mir nicht sicher bin wie das genau funktioniert.

Aufgabe 1:
Patient (#PID, Nachname, Vorname, Geburtsdatum, Telefon)
Behandlung (#BID, PID, Datum)

a) Es sollen die Anzahlen der Behandlungen jedes Patienten im Jahr 2020 sowie dessen Nach- und Vorname ausgegeben werden.

Ansatz:
SELECT COUNT (#BID), Nachname, Vorname FROM Behandlung INNER JOIN Patient....

Aufgabe 2:
Leider habe ich keine Ansätze bei Aufgabe 2 aber hoffe ihr könnt mir helfen damit ich in Zukunft ein Muster habe.

Kunde (#K_ID, Firma, Strasse, PLZ, Ort)
Rechnung (#R_ID, K_ID, RechDatum)
Position (#R_ID, #A_ID, Menge, Verkaufspreis)
Artikel (#A_ID, H_ID, Bezeichnung, ListenPreis)
Hersteller (#H_ID, Firma)

a) Erstellen Sie eine Liste aller Kunden mit Anzahl der Rechnungen im Jahr 2020. Ausgegeben werden sollen die K_ID, Firma und Anzahl, absteigend sortiert nach Anzahl.

b) Erstellen Sie eine Liste aller Kunden mit dem Umsatz je bezogenem Artikel. Ausgeben werden sollen: K_ID, Firma, Artikelbezeichnung, Umsatz mit dem Artikel

Vielen Dank.
 
Werbung:
1a: wichtig ist noch das GROUP BY, kennst Du sicher ...
2a: auch hier ein JOIN mit einem COUNT und GROUP BY
2b: JOIN über 5 Tabellen, SUM() statt COUNT. Rest trivial.
 
ich habe nun folgende Ansätze:

1a)

SELECT COUNT (BID), Nachname, Vorname
FROM Behandlung
INNER JOIN Patient USING (PID)
WHERE Datum BETWEEN 20200101 AND 20201231;

2b)

SELECT K_ID, Firma, Bezeichnung, SUM ( VerkaufsPreis * Menge) AS Umsatz FROM Kunde
INNER JOIN Rechnung USING (K_ID)
INNER JOIN Position USING (R_ID)
INNER JOIN Artikel USING (A_ID)


Vielen Dank für deine Antwort. Kann das so funktionieren ?
 
Die Aufgaben sind von einem Arbeitsblatt. Ich wüsste nicht wie ich die probieren soll. Deine Hinweise konnte ich leider nicht Umsetzen
 
Also so ?

1a)

SELECT COUNT (BID), Nachname, Vorname
FROM Behandlung
INNER JOIN Patient USING (PID)
WHERE Datum BETWEEN 20200101 AND 20201231;
GROUP BY BID

2b)

SELECT K_ID, Firma, Bezeichnung, SUM ( VerkaufsPreis * Menge) AS Umsatz FROM Kunde
INNER JOIN Rechnung USING (K_ID)
INNER JOIN Position USING (R_ID)
INNER JOIN Artikel USING (A_ID)
GROUP BY K_ID
 
1a)

SELECT COUNT (BID), Nachname, Vorname
FROM Behandlung
INNER JOIN Patient USING (PID)
GROUP BY PID
HAVING Datum BETWEEN 20200101 AND 20201231;

Mir gehen die Ideen aus
 
Werbung:
Das bringt doch nichts. Installier Dir z.B. PostgreSQL oder nutze das Fiddle und probiere es aus. Dir jetzt die Antwort zu geben hätte exakt NULL Lerneffekt. Oder besser, SQL-technisch: 0 Lerneffekt. Ja, da ist ein Unterschied ...
 
Zurück
Oben