Hallo zusammen,
leider komme ich bei meinem Problem nicht so ganz weiter.
Meine Ausbildung wo SQL behandelt wurde ist schon zu lange her und ich hatte nichts mehr damit zu tun.
Es handelt sich um eine Schützendatenbank.
Gegeben:
3 Tabellen:
Table: Scheiben
Columns:
ScheibenID int(11) PK
Starterliste varchar(36)
StarterlistenID int(11)
StartNr int(11)
Nachname varchar(36)
Vorname varchar(36)
SportpassID int(11)
StandNr smallint(6)
Disziplin varchar(36)
DisziplinlID int(11)
Klasse varchar(36)
KlassenID int(11)
Verein varchar(36)
VereinsID int(11)
Mannschaft varchar(36)
MannschaftsID int(11)
Rangliste varchar(36)
RanglistenID int(11)
Trefferzahl smallint(6)
TotalRing int(11)
TotalRing01 int(11)
BesterTeiler01 int(11)
Zeitstempel datetime
Table: Serien
Columns:
ScheibenID int(11) PK
Stellung smallint(6) PK
Serie smallint(6) PK
Ring int(11)
Ring01 int(11)
Table: Treffer
Columns:
ScheibenID int(11) PK
Stellung smallint(6) PK
Treffer smallint(6) PK
x int(11)
y int(11)
Innenzehner tinyint(1)
Ring int(11)
Ring01 int(11)
Teiler01 int(11)
Zeitstempel datetime
Millisekunden smallint(6)
Table: Treffer
Columns:
ScheibenID int(11) PK
Stellung smallint(6) PK
Treffer smallint(6) PK
x int(11)
y int(11)
Innenzehner tinyint(1)
Ring int(11)
Ring01 int(11)
Teiler01 int(11)
Zeitstempel datetime
Millisekunden smallint(6)
Ganz Einfach eigentlich.
Jetzt suche ich die Möglichkeit eine Abfrage zu gestalten die mir folgendes Liefert:
Für ein Spezielles Schiessen (Starterliste oder Starterliste ID) möchte ich das Ergebniss aller Schützen (Nachname, Vorname usw ) in einer Tabelle erhalten Die nach der Summe TotalRing01 der 4 erstenSchützen sortiert wird.
Folgendes habe ich schon herausgefunden:
Alle Schützen nach Mannschaft sortiert.
1
Select a_S.*,a_A.*
FROM SSMDB2.Scheiben as a_S
/*where Serien.ScheibenID = a_s.ScheibenID*/
LEFT OUTER JOIN SSMDB2.Serien as a_A
ON a_A.ScheibenID = a_S.ScheibenID
WHERE Starterliste = 'Laien Schießen 2016'
ORDER BY MannschaftsID
/*GROUP BY MannschaftsID*/
;
Die Summe aller Mannschaftsteilnehmer:
2
Select a_S.*,Sum(TotalRing01) AS M_Summe
FROM SSMDB2.Scheiben as a_S
/*where Serien.ScheibenID = a_s.ScheibenID*/
RIGHT OUTER JOIN SSMDB2.Serien as a_A
ON a_A.ScheibenID = a_S.ScheibenID
WHERE Starterliste = 'xxx'
GROUP BY MannschaftsID
;
Das Ergebniss soll alles aus 1 enthalten aber die Summe wie in 2 aber nur für die 4 besten.
Irgendwie steh ich auf dem Schlauch.
Gruss Chris
leider komme ich bei meinem Problem nicht so ganz weiter.
Meine Ausbildung wo SQL behandelt wurde ist schon zu lange her und ich hatte nichts mehr damit zu tun.
Es handelt sich um eine Schützendatenbank.
Gegeben:
3 Tabellen:
Table: Scheiben
Columns:
ScheibenID int(11) PK
Starterliste varchar(36)
StarterlistenID int(11)
StartNr int(11)
Nachname varchar(36)
Vorname varchar(36)
SportpassID int(11)
StandNr smallint(6)
Disziplin varchar(36)
DisziplinlID int(11)
Klasse varchar(36)
KlassenID int(11)
Verein varchar(36)
VereinsID int(11)
Mannschaft varchar(36)
MannschaftsID int(11)
Rangliste varchar(36)
RanglistenID int(11)
Trefferzahl smallint(6)
TotalRing int(11)
TotalRing01 int(11)
BesterTeiler01 int(11)
Zeitstempel datetime
Table: Serien
Columns:
ScheibenID int(11) PK
Stellung smallint(6) PK
Serie smallint(6) PK
Ring int(11)
Ring01 int(11)
Table: Treffer
Columns:
ScheibenID int(11) PK
Stellung smallint(6) PK
Treffer smallint(6) PK
x int(11)
y int(11)
Innenzehner tinyint(1)
Ring int(11)
Ring01 int(11)
Teiler01 int(11)
Zeitstempel datetime
Millisekunden smallint(6)
Table: Treffer
Columns:
ScheibenID int(11) PK
Stellung smallint(6) PK
Treffer smallint(6) PK
x int(11)
y int(11)
Innenzehner tinyint(1)
Ring int(11)
Ring01 int(11)
Teiler01 int(11)
Zeitstempel datetime
Millisekunden smallint(6)
Ganz Einfach eigentlich.
Jetzt suche ich die Möglichkeit eine Abfrage zu gestalten die mir folgendes Liefert:
Für ein Spezielles Schiessen (Starterliste oder Starterliste ID) möchte ich das Ergebniss aller Schützen (Nachname, Vorname usw ) in einer Tabelle erhalten Die nach der Summe TotalRing01 der 4 erstenSchützen sortiert wird.
Folgendes habe ich schon herausgefunden:
Alle Schützen nach Mannschaft sortiert.
1
Select a_S.*,a_A.*
FROM SSMDB2.Scheiben as a_S
/*where Serien.ScheibenID = a_s.ScheibenID*/
LEFT OUTER JOIN SSMDB2.Serien as a_A
ON a_A.ScheibenID = a_S.ScheibenID
WHERE Starterliste = 'Laien Schießen 2016'
ORDER BY MannschaftsID
/*GROUP BY MannschaftsID*/
;
Die Summe aller Mannschaftsteilnehmer:
2
Select a_S.*,Sum(TotalRing01) AS M_Summe
FROM SSMDB2.Scheiben as a_S
/*where Serien.ScheibenID = a_s.ScheibenID*/
RIGHT OUTER JOIN SSMDB2.Serien as a_A
ON a_A.ScheibenID = a_S.ScheibenID
WHERE Starterliste = 'xxx'
GROUP BY MannschaftsID
;
Das Ergebniss soll alles aus 1 enthalten aber die Summe wie in 2 aber nur für die 4 besten.
Irgendwie steh ich auf dem Schlauch.
Gruss Chris