[SQL] --> SQL-Anfrage

oraclin25

Erfahrenes Mitglied
Hallo zusammen,

ich habe folgende Tabelle "Schule":
Code:
Schule            Name           Ist
-------------------------------------------------
Schule_01         Ratna          regelmäßig
Schule_01         Ratna          regelmäßig
Schule_01         Lena           regelmäßig
Schule_02         Ratna          regelmäßig
Schule_02         Bob            regelmäßig 
Schule_03         Peter          regelmäßig

Dass in der Tabelle "Schule" redundante Datensätze existieren, das ist so.
Ich möchte gerne daraus folgende Tabelle erzeugen:

Code:
Schule         Anzahl
---------------------------
Schule_01      3
Schule_02      4
Schule_03      5

Ich möchte also zu jeder Schule die Anzahl der Schüler aus anderen Schulen. Irgendwie einfach, aber doch nicht so einfach, oder? Könnte mir jemand bitte helfen? Vielen Dank.

Schöne Grüße aus Rheinland,
Eure Ratna:)
 
Oracle? MS Access? MySQL?

Naja, das ist eigentlich noch bei allen gleich. Ein GROUP BY schule und ein COUNT(*) und schon haste was du suchst
 
Hallo Yaslaw,

vielen Dank für die rasche Antwort. Ich verwende DB2.
Na, ich bin bereits auf GROUP BY und COUNT(*) gekommen, nur, in diesem Fall bezieht die Funktion COUNT ja nicht auf die betroffene Schule, sondern auf die anderen Schulen. So einen Fall hatte ich noch nicht gehabt, hilf mir bitte :(

Vielen Dank.

Schöne Grüße aus Rheinland,
Eure Ratna
 
Ah, jetzt seh ichs halbwegs.

Wie erkenn ich in dieser Tabell welcher Schüler zu welcher Schule gehört?

Anderst gefragt: wie kommt man auf die Zahlen der Spalte Anzahl. Woher hat Schule_3 5 Einträge? Ich sehe da keinen Zusammenhang mit der Tabelle Schule der irgendwie auf diese Zahl schliessen lässt.
 
Hallo Yaslaw,

vielen Dank für die rasche Antwort.

Für Schule_01 zum Beispiel möchte ich gerne wissen, wieviele Zeilen es gibt, die NICHT zur Schule_01 gehört. Daher:


Code:
Schule           Anzahl
-------------------------

Schule_01     3

Die Anzahl 3 stammt also aus folgendem, da es 3 Zeilen gibt, die nicht zur Schule_01 gehören:

Code:
Schule           Name             Ist
--------------------------------------

Schule_02        Ratna           regelmäßig 
Schule_02        Bob             regelmäßig
Schule_03        Peter           regelmäßig

Analog zu Schule_02 und Schule_03.

Hast Du vielleicht eine Idee? Vielen Dank.

Schöne Grüße aus Rheinland,

Eure Ratna:)
 
Achso. Ungetestet
SQL:
SELECT
	s.schule,
	-- Anzahl aller Einträge minus die Einträge dieser Schule
	t.total - COUNT(s.*) AS anzahl
FROM
	-- Ermitteln der Anzahl aller Einträge
	(SELECT COUNT(*) AS total FRUM schule)  AS t,
	schule AS s 
GROUP BY
	s.schule
 
Zuletzt bearbeitet von einem Moderator:
Hallo zusammen und Yaslaw,

leider hat der Code nicht funktioniert.

Mittleweiler habe ich folgende Tabelle:

Code:
Schule            Name           Spendenbetrag   
-------------------------------------------------
Schule_01         Ratna          20                  
Schule_01         Ratna          30
Schule_01         Lena           45
Schule_02         Ratna          55
Schule_02         Bob            10
Schule_03         Peter          5

Ich möchte gerne eine Auflistung von Schulen haben; zu jeder Schule soll die Anzahl der Spendenvorgänge anderer Schulen ermittelt werden:

Code:
Schule         Anzahl
-----------------------
Schule_01      3
Schule_02      4
Schule_03      5

Also, zum Beispiel für Schule_02 ergibt sich eine 4 (3 Spendiervorgänge aus Schule_01 und 1 mal aus Schule_03)

Zur Lösung des Problems habe ich gedacht, ich muss ja irgendwie ein GROUP BY auf Schule machen, um einzelne Schulen aufzulisten. Danach die Aggregatfunktion, das ist nicht so leicht, da ja nicht zu der betroffen Schule aggregiert werden, sondern es sollen alle anderen Schulen gezählt werden.

Bitte um Hilfe.

Vielen Dank.

Schöne Grüße aus Rheinland,

Eure Ratna
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück