SQL-Abfragen
Die folgenden SQL-Abfragen helfen bei speziellen Auswertungen der BatBase-Daten. Sie können sie als Vorlage verwenden und an Ihre Daten anpassen.
So verwenden Sie die Abfragen
- Wechseln Sie in das Modul Liste.
- Blenden Sie über [SQL-Filter] (Registerkarte Liste, Bediengruppe Filteransicht) das Eingabefeld für SQL-Anweisungen ein.
- Kopieren Sie die gewünschte Abfrage in das Eingabefeld, passen Sie sie an und führen Sie sie aus.
Es gibt zwei Arten von Abfragen:
- Abfragen, die mit
WHEREbeginnen, filtern die Beobachtungen in der Liste. - Abfragen, die mit
SELECTbeginnen, erzeugen eine eigene Ergebnistabelle, zum Beispiel mit Summen oder Anzahlen. Dafür benötigen Sie die Berechtigung für SQL-Abfragen.
Siehe auch Benutzerdefinierter SQL-Filter.
Beispielabfragen
Alle Beringungen und Wiederfunde von Tieren, die ein Beringer beringt oder wiedergefunden hat (Export Beringer-Datenbank)
WHERE tblDaten.Ringnummer IN (SELECT DISTINCT tblDaten.Ringnummer FROM tblDaten
WHERE tblDaten.GUID_Beobachter = '{4FE5E83C-EDA1-43C5-BB16-9E73962E4FF7}')Setzen Sie die GUID des gewünschten Beringers ein.
Alle Wiederfunde von Tieren, die ein Beringer beringt hat
WHERE tblDaten.Ringnummer IN (SELECT DISTINCT tblDaten.Ringnummer FROM tblDaten
WHERE GUID_Beobachter = '{4FE5E83C-EDA1-43C5-BB16-9E73962E4FF7}'
AND ID_FundTyp IN (540)) AND ID_FundTyp <> 540Setzen Sie die GUID des gewünschten Beringers ein.
Alle Wiederfunde aus dem Jahr 2013 von Tieren, die ein Beringer beringt und ein anderer Beringer gefunden hat (Variante 1)
WHERE tblDaten.Ringnummer IN (SELECT DISTINCT tblDaten.Ringnummer FROM tblDaten
WHERE tblDaten.GUID_Beobachter = '{4FE5E83C-EDA1-43C5-BB16-9E73962E4FF7}'
AND tblDaten.ID_FundTyp = 540)
AND tblDaten.ID_FundTyp = 542
AND tblDaten.GUID_Beobachter <> '{4FE5E83C-EDA1-43C5-BB16-9E73962E4FF7}'
AND tblDaten.Jahr = 2013Setzen Sie die GUID des gewünschten Beringers und das gewünschte Jahr ein.
Alle Wiederfunde aus dem Jahr 2013 von Tieren, die ein Beringer beringt und ein anderer Beringer gefunden hat (Variante 2)
SELECT ID_FundTyp, Ringnummer, Datum, Ortsbezeichnung, Art_deutsch, Beobachter
FROM tblDaten INNER JOIN tblArten
ON tblDaten.ID_Art = tblArten.ID_Art INNER JOIN tblBeobachter
ON tblDaten.GUID_Beobachter = tblBeobachter.GUID_Beobachter
WHERE Ringnummer IN (
SELECT DISTINCT (Ringnummer) FROM tblDaten
INNER JOIN (SELECT DISTINCT Ringnummer AS Beringung_Ringnummer, GUID_Beobachter
AS Beringung_Beobachter FROM tblDaten WHERE tblDaten.ID_FundTyp = 540) A
ON tblDaten.Ringnummer = A.Beringung_Ringnummer
WHERE tblDaten.ID_FundTyp = 542
AND tblDaten.GUID_Beobachter <> Beringung_Beobachter
AND tblDaten.Jahr = 2013)
AND (tblDaten.Jahr = 2013 OR ID_FundTyp = 540)
ORDER BY Ringnummer, ID_FundtypSetzen Sie das gewünschte Jahr ein.
Export Beringer-Datenbank (Beringergemeinschaft)
WHERE Ringnummer IN (SELECT DISTINCT Ringnummer FROM tblDaten
WHERE GUID_Beobachter IN
('{4FE5E83C-EDA1-43C5-BB16-9E73962E4FF7}',
'{257D4E1E-7A04-4917-AD46-C001F210BCCA}',
'{14F3E752-9779-4DBA-8002-E3C504F044A5}',
'{DEA89588-F150-4954-AD0A-D4D2F5EA0318}'))Setzen Sie die GUIDs der gewünschten Beringer ein.
Übersicht über alle ausgegebenen Ringe
SELECT tblBeobachter.GUID_Beobachter, tblBeobachter.ID_Beobachter,
tblBeobachter.Beobachter, tblBeobachter.Vorname, tblBeobachter.Nachname,
tblBeobachter.Ort, tblBeobachter.Bemerkung, tblBeobachter.Beringergemeinschaft,
tblBeobachter.Ansprechberinger, tblRingausgabe.Ausgabedatum,
tblRingausgabe.Serie, tblRingausgabe.SerienNr, tblRingausgabe.Flag_Liste,
tblRingausgabe.Menge, tblRingausgabe.Bemerkung, tblRingausgabe.FehlendeRinge,
tblRingausgabe.SummeFehlendeRinge, tblRingausgabe.LetzteLieferung,
tblRingausgabe.Verbleib, tblRingausgabe.NochBeiBeringer,
tblRingausgabe.ID_Bundesland, tblUserRefList.ItemValue AS Ringfarbe
FROM tblBeobachter
INNER JOIN tblRingausgabe
ON tblBeobachter.GUID_Beobachter = tblRingausgabe.GUID_Beobachter
LEFT OUTER JOIN tblUserRefList ON tblRingausgabe.ID_Farbe = tblUserRefList.ID_URef
WHERE tblUserRefList.ItemValue LIKE 'gold' AND tblRingausgabe.Serie LIKE 'C'
ORDER BY tblRingausgabe.Serie, tblRingausgabe.SerienNrAnzahl Beringungen und Wiederfunde je Beringungsort
SELECT A.Ortsbezeichnung,
(SELECT COUNT (*) FROM tblDaten WHERE tblDaten.GUID_Ort = A.GUID_Ort
AND tblDaten.ID_AddIn = 13 AND tblDaten.ID_FundTyp = 540) AS Anzahl_Beringungen,
(SELECT COUNT (*) FROM tblDaten WHERE tblDaten.GUID_Ort = A.GUID_Ort
AND tblDaten.ID_AddIn = 13 AND tblDaten.ID_FundTyp = 542) AS Anzahl_Wiederfunde
FROM tblGeometrie A
ORDER BY OrtsbezeichnungAnzahl Beringungen und Wiederfunde je Beringungsort, eingeschränkt auf einen Beringer
SELECT A.Ortsbezeichnung,
(SELECT COUNT (*) FROM tblDaten WHERE tblDaten.GUID_Ort = A.GUID_Ort
AND tblDaten.GUID_Beobachter IN (SELECT GUID_Beobachter FROM tblBeobachter WHERE Beobachter LIKE 'M.Mustermann')
AND tblDaten.ID_AddIn = 13 AND tblDaten.ID_FundTyp = 540) AS Anzahl_Beringungen,
(SELECT COUNT (*) FROM tblDaten WHERE tblDaten.GUID_Ort = A.GUID_Ort
AND tblDaten.GUID_Beobachter IN (SELECT GUID_Beobachter FROM tblBeobachter WHERE Beobachter LIKE 'M.Mustermann')
AND tblDaten.ID_AddIn = 13 AND tblDaten.ID_FundTyp = 542) AS Anzahl_Wiederfunde
FROM tblGeometrie A
WHERE (SELECT COUNT (*) FROM tblDaten WHERE tblDaten.GUID_Ort = A.GUID_Ort
AND tblDaten.GUID_Beobachter IN (SELECT GUID_Beobachter FROM tblBeobachter WHERE Beobachter LIKE 'M.Mustermann')
AND tblDaten.ID_AddIn = 13 AND tblDaten.ID_FundTyp = 540) > 0
OR
(SELECT COUNT (*) FROM tblDaten WHERE tblDaten.GUID_Ort = A.GUID_Ort
AND tblDaten.GUID_Beobachter IN (SELECT GUID_Beobachter FROM tblBeobachter WHERE Beobachter LIKE 'M.Mustermann')
AND tblDaten.ID_AddIn = 13 AND tblDaten.ID_FundTyp = 542) > 0
ORDER BY OrtsbezeichnungAnzahl Beringungen und Wiederfunde je Beobachter
SELECT A.Beobachter,
(SELECT COUNT (*) FROM tblDaten WHERE tblDaten.GUID_Beobachter = A.GUID_Beobachter
AND tblDaten.ID_AddIn = 13 AND tblDaten.ID_FundTyp = 540) AS Anzahl_Beringungen,
(SELECT COUNT (*) FROM tblDaten WHERE tblDaten.GUID_Beobachter = A.GUID_Beobachter
AND tblDaten.ID_AddIn = 13 AND tblDaten.ID_FundTyp = 542) AS Anzahl_Wiederfunde
FROM tblBeobachter A
ORDER BY BeobachterÜbersicht über alle Wiederfunde mit einer Flugstrecke > 20 km und alle dazugehörigen Beringungen
WHERE tblDaten.Ringnummer IN (SELECT tblDaten.Ringnummer FROM tblDaten WHERE GUID_Daten IN
(SELECT GUID_Daten FROM tblDatenZusatz WHERE Flugstrecke > 20000))Alle Wiederfunde ohne Beringung
WHERE tblDaten.ID_FundTyp = 542 AND NOT tblDaten.Ringnummer IN
(SELECT tblDaten.Ringnummer FROM tblDaten WHERE tblDaten.ID_FundTyp = 540)Alle Tiere einschließlich Beringung, die mehr als 20 km geflogen sind
WHERE (tblDaten.Ringnummer IN (SELECT tblDaten.Ringnummer FROM tblDaten
INNER JOIN tblDatenZusatz
ON tblDaten.GUID_Daten = tblDatenZusatz.GUID_Daten
WHERE tblDatenZusatz.Flugstrecke > 20000))
ORDER BY tblDaten.Ringnummer, tblDaten.DatumAlle Großen Mausohren in den angegebenen Messtischblättern ab dem Jahr 1964, die mehr als 5 km geflogen sind, einschließlich der dazugehörigen Beringungen
WHERE
Ringnummer IN (SELECT Ringnummer FROM tblDaten
WHERE ID_Art = 110 AND MTB IN (4953, 4954, 4955, 5054, 5055, 5154, 5155) AND Jahr >= 1964)
AND Ringnummer IN (SELECT Ringnummer FROM tblDaten INNER JOIN tblDatenZusatz
ON tblDaten.GUID_Daten = tblDatenZusatz.GUID_Daten
WHERE ID_Art = 110 AND Jahr >= 1964 AND tblDatenZusatz.Flugstrecke > 5000)
ORDER BY Ringnummer, DatumAnzahl Beringungen je Art und Bundesland zwischen 1964 und 2012
SELECT tblDaten.ID_Art, MIN(Art_deutsch) AS Art_deutsch,
MIN(Art_wissenschaftlich) AS Art_wissenschaftlich,
tblDaten.Region, COUNT(ID_Daten) AS Anzahl_Beringungen
FROM tblDaten INNER JOIN tblArten
ON tblDaten.ID_Art = tblArten.ID_Art
WHERE tblDaten.ID_AddIn = 13
AND tblDaten.ID_FundTyp = 540
AND tblDaten.Jahr >= 1964
AND tblDaten.Jahr <= 2012
GROUP BY tblDaten.ID_Art, Region
ORDER BY Art_deutsch, RegionAnzahl Wiederfunde je Art und Bundesland zwischen 1964 und 2012
SELECT tblDaten.ID_Art, MIN(Art_deutsch) AS Art_deutsch,
MIN(Art_wissenschaftlich) AS Art_wissenschaftlich,
tblDaten.Region, COUNT(ID_Daten) AS Anzahl_Wiederfunde
FROM tblDaten INNER JOIN tblArten
ON tblDaten.ID_Art = tblArten.ID_Art
WHERE tblDaten.ID_AddIn = 13
AND tblDaten.ID_FundTyp = 542
AND tblDaten.Jahr >= 1964
AND tblDaten.Jahr <= 2012
GROUP BY tblDaten.ID_Art, Region
ORDER BY Art_deutsch, RegionBeringung zu alter Ringnummer finden (Umberingung)
WHERE tblDaten.GUID_Daten IN
(SELECT tblRingnummerHistory.GUID_Daten
FROM tblRingnummerHistory
WHERE tblRingnummerHistory.Ringnummer LIKE 'Z28448')Beringung zu alter Ringnummer finden (Umberingung, ganze Serie)
WHERE tblDaten.GUID_Daten IN
(SELECT tblRingnummerHistory.GUID_Daten
FROM tblRingnummerHistory
WHERE tblRingnummerHistory.Ringnummer LIKE 'O%')Alle Beringungen und Wiederfunde der Rauhautfledermaus, die in der „Nossentiner Heide“ beringt wurden
WHERE tblDaten.Ringnummer IN
(SELECT tblDaten.Ringnummer FROM tblDaten
WHERE tblDaten.ID_FundTyp = 540
AND tblDaten.Ortsbezeichnung LIKE 'Nossentiner Heide%')
AND tblArten.Art_deutsch LIKE 'Rauhautfledermaus'Alle Beringungen und Wiederfunde der Rauhautfledermaus (männlich), die in der „Nossentiner Heide“ beringt wurden und 1997 wiedergefunden wurden
WHERE tblArten.Art_deutsch LIKE 'Rauhautfledermaus'
AND (Ringnummer IN (SELECT Ringnummer FROM tblDaten
INNER JOIN tblDatenZusatz ON tblDaten.GUID_Daten=tblDatenZusatz.GUID_Daten
WHERE Ortsbezeichnung LIKE 'Nossentiner%'
AND tblDaten.ID_FundTyp = 540
AND tblDatenZusatz.ID_Geschlecht = 1))
AND (Ringnummer IN (SELECT Ringnummer
FROM tblDaten
WHERE tblDaten.ID_FundTyp = 542
AND tblDaten.Jahr = 1997))Alle Beringungen und Wiederfunde des Großen Mausohrs, die in der Region „Polen“ beringt wurden und mehr als 100 km geflogen sind
WHERE (tblDaten.Ringnummer IN (SELECT tblDaten.Ringnummer FROM tblDaten WHERE GUID_Daten IN
(SELECT GUID_Daten FROM tblDatenZusatz WHERE Flugstrecke > 100000))
AND tblArten.Art_deutsch LIKE 'Großes Mausohr')
AND (tblDaten.Ringnummer IN (SELECT tblDaten.Ringnummer FROM tblDaten
WHERE tblDaten.ID_FundTyp = 540 AND tblDaten.Region LIKE 'Polen'))
ORDER BY tblDaten.Ringnummer ASC, tblDaten.ID_FundTyp ASCAlle Beringungen und Wiederfunde des Großen Mausohrs, die in der „Burg Stargard“ beringt wurden und mehr als 100 km geflogen sind
WHERE (tblDaten.Ringnummer IN
(SELECT tblDaten.Ringnummer FROM tblDaten WHERE GUID_Daten IN
(SELECT GUID_Daten FROM tblDatenZusatz WHERE Flugstrecke > 100000))
AND tblArten.Art_deutsch LIKE 'Großes Mausohr')
AND (tblDaten.Ringnummer IN (SELECT tblDaten.Ringnummer FROM tblDaten
WHERE tblDaten.ID_FundTyp = 540 AND Ortsbezeichnung LIKE 'Burg Stargard'))
ORDER BY tblDaten.Ringnummer ASC, tblDaten.ID_FundTyp ASCStatistik: Anzahl der ausgegebenen Ringe je Bundesland, Serie und Jahr
SELECT tblBeobachter.Region, tblRingausgabe.Serie, YEAR(tblRingausgabe.Ausgabedatum) AS Jahr, SUM(tblRingausgabe.Menge) AS Summe
FROM tblBeobachter INNER JOIN tblRingausgabe ON tblBeobachter.GUID_Beobachter = tblRingausgabe.GUID_Beobachter
GROUP BY tblBeobachter.Region, YEAR(tblRingausgabe.Ausgabedatum), tblRingausgabe.Serie
ORDER BY tblBeobachter.Region, tblRingausgabe.Serie, JahrInkonsistente Arten innerhalb einer Ringnummer finden
SELECT Ringnummer, COUNT(A.Ringnummer) AS Anzahl
FROM (SELECT DISTINCT Ringnummer, ID_Art FROM tblDaten) A
GROUP BY A.Ringnummer
HAVING COUNT(A.Ringnummer) > 1Anzahl Fundorte je Art für einen bestimmten Zeitraum
SELECT MIN(A.Art_Deutsch) AS Art_Deutsch, MIN(A.Art_Wissenschaftlich) AS Art_Wissenschaftlich, COUNT(A.Ortsbezeichnung ) AS Anzahl FROM
(
SELECT tblArten.Art_Deutsch, tblArten.Art_Wissenschaftlich, tblDaten.Ortsbezeichnung
FROM tblArten
INNER JOIN tblDaten ON tblArten.ID_Art = tblDaten.ID_Art
WHERE (tblDaten.Jahr >= 1991) AND (tblDaten.Jahr <= 2016)
GROUP BY tblArten.Art_Deutsch, tblArten.Art_Wissenschaftlich, tblDaten.Ortsbezeichnung
) A
GROUP BY A.Art_Deutsch
ORDER BY A.Art_DeutschDoppelte Beringungen ermitteln
SELECT A.* FROM (SELECT ID_FundTyp, Ringnummer, COUNT(ID_FundTyp) AS Anzahl
FROM tblDaten WHERE ID_AddIn = 13 GROUP BY ID_FundTyp, Ringnummer) A
WHERE A.Anzahl > 1 AND ID_FundTyp = 540 Order BY RingnummerDoppelte Wiederfunde ermitteln
SELECT A.* FROM (SELECT ID_FundTyp, Ringnummer, Datum, COUNT(ID_FundTyp) AS Anzahl
FROM tblDaten WHERE ID_AddIn = 13 GROUP BY ID_FundTyp, Ringnummer, Datum) A
WHERE A.Anzahl > 1 AND ID_FundTyp = 542 Order BY Ringnummer