Flexible Auswertungen in TNG

Alle Fragen zum Programm, die nicht in die unten stehenden Rubriken gehören.
Benutzeravatar
Thomas
Site Admin
Beiträge: 1845
Registriert: 06.05.2002 11:22
Wohnort: Stuttgart
Kontaktdaten:

Beitrag von Thomas »

Jetzt mal ein Beispiel, dass eventuell etwas sinnvoller ist, als das obige mit dem Nachnamen Müller: :lol:

Das folgende Beispiel listet alle Personen auf, bei denen kein Geburtsdatum eingetragen ist. So hat man schnell einen Überblick, wo man noch nacharbeiten muss.

Code: Alles auswählen

SELECT lastname, firstname, birthdate, birthplace 
FROM tng_people 
WHERE (birthdate = "") 
ORDER BY lastname
"Übersetzt" bedeutet obiger Code:
Wähle Nachname, Vornamen, Geburtstag, Geburtsort
aus der Tabelle Personen
mit der Bedingung Geburtsdatum ohne Inhalt
sortiert nach Nachnamen

Gruß
Thomas
Viele Grüße
Thomas
Benutzeravatar
Ralfwenzel
Mitglied
Beiträge: 74
Registriert: 03.02.2003 20:48
Wohnort: Hamburg
Kontaktdaten:

Beitrag von Ralfwenzel »

Hallo Thomas,

habe das letzte Beispiel ausprobiert. Funktioniert auch, aber mit Fehlermeldung:

SQL: SELECT lastname, firstname, birthdate, birthplace FROM tng_people WHERE (birthdate = "") ORDER BY lastname

allerdings nur beim FF, IE ist alles ok!

Kann ich aber mit leben!

Gruß Ralf
Benutzeravatar
Thomas
Site Admin
Beiträge: 1845
Registriert: 06.05.2002 11:22
Wohnort: Stuttgart
Kontaktdaten:

Beitrag von Thomas »

Hallo Ralf,

ich habe die Beispielauswertung gerade auf Deiner Seite mit FF getestet.
Bei mir kommt keine Fehlermeldung und alles sieht gut aus.

Was kommt denn da bei Dir für eine Fehlermeldung?

Gruß
Thomas
Viele Grüße
Thomas
Benutzeravatar
Ralfwenzel
Mitglied
Beiträge: 74
Registriert: 03.02.2003 20:48
Wohnort: Hamburg
Kontaktdaten:

Beitrag von Ralfwenzel »

Hallo Thomas,

hatte wohl den FF nicht aktualisiert, habe jetzt auch keine Fehlermeldung mehr, sorry. Auf dieser Auswertung werde ich jetzt aufbauen und mich weiter an den Auswertungen versuchen, erstmal aber vielen Dank für Deine Hilfe!

Grüße von mir und Meike

PS Sind morgen auf der Computergenealogie Börse in Hamburg!
Benutzeravatar
Ralfwenzel
Mitglied
Beiträge: 74
Registriert: 03.02.2003 20:48
Wohnort: Hamburg
Kontaktdaten:

Beitrag von Ralfwenzel »

Thomas hat geschrieben:Noch ein Beispiel:
zeige alle Personen, die im 18. Jahrhundert geboren sind
(konkret zwischen dem 1.1.1700 und dem 31.1.1800):

Code: Alles auswählen

SELECT personID, lastname, firstname, birthdate, birthplace, deathdate, deathplace 
FROM (tng_people ) 
WHERE ( TO_DAYS(birthdatetr) >= TO_DAYS("1701-01-01") ) 
AND ( TO_DAYS(birthdatetr) <= TO_DAYS("1800-12-31") ) 
ORDER BY birthdatetr, lastname, firstname
Hallo Thomas,

wie ändere ich den code bei Personen wo nur das Geburtsjahr bekannt ist?

Gruß Ralf
Benutzeravatar
Thomas
Site Admin
Beiträge: 1845
Registriert: 06.05.2002 11:22
Wohnort: Stuttgart
Kontaktdaten:

Beitrag von Thomas »

Hallo Ralf,

Du musst an dem Code gar nichts ändern, auch wenn Du Daten verwendest, bei denen nur ein Geburtsjahr, nicht aber Monat und Tag bekannt sind.

Hier zum besseren Verständnis, wie TNG ein Datum ablegt, noch ein paar Infos:

Es wird z.B. der "4 Sep 1766" aus der GEDCOM-Datei im Feld "birthdate" als Text gespeichert.
Gleichzeitig wird beim GEDCOM-Import im Feld "birthdatetr" der Wert "1766-09-04" eingetragen.
"1766" in "birthdate" wird als "1766-00-00" im Feld "birthdatestr" gespeichert.
Fehlt die Angabe in "birthdate" komplett, dann wird in "birthdatestr" "0000-00-00" gespeichert.

Die Funktion "TO_DAYS" errechnet aus jedem beliebigen "birthdatestr" einen echten Zahlenwert, den man nun mit einem anderen Zahlenwert vergleichen kann.

Ich habe es noch nicht getestet, aber wenn man z.B. alle Personen auflisten wollte, die vor einem bestimmten Datum geboren sind, dann müßten bei obigem Beispiel auch alle Personen aufgelistet werden, die kein Geburtsdatum enthalten, da dort ja "0000-00-00" gespeichert wird.

Somit funktioniert die obige Auswertung also auch mit unvollständigen Geburtstagsangaben. :D

Gruß
Thomas
Viele Grüße
Thomas
Antworten