Seite 1 von 2
Datum zerlegen
Verfasst: So 11. Dez 2016, 17:08
von debrequ
Hallo,
Ich möchte aus einen Geburtsdatum das Jahr herausfiltern. Wie geht das.
Bei MS-dBase konnte ich die Funktion in der Entwurfsansicht unterbringen. Das geht wohl bei Base so nicht.
Re: Datum zerlegen
Verfasst: So 11. Dez 2016, 17:56
von debrequ
Hallo niki,
ich muss nachfragen.
Wo muss ich die SQL-Syntax eingeben?
Kannst Du bitte die Vorgehensweise mal beschreiben.
Ich meinte MS-Acces.
Entschuldige bitte ich bin alles andere als Datenbakspezialist. Auch bei Acces habe ich nur an der "Oberfläche" gekratzt. Für meine Anwendungen hat das gereicht.
Gleich noch eine Frage: wie muss ich vorgehen um mir die Feldtypen der Tabelle ansehen zu können.
Ich fürchte das hier wird zum Anfängerkurs und bitte um Verständnis.
Re: Datum zerlegen
Verfasst: So 11. Dez 2016, 18:05
von RobertG
Hallo debrequ,
um die Feldtypen sehen zu können gehe in den Tabellenordner, rechter Mausklick auf die Tabelle und "Bearbeiten" auswählen.
Zur Eingabe von SQL-Code: Fertige die Abfrage so weit wie möglich über die grafische Benutzeroberfläche vor. Schalte dann die Designansicht aus. Du siehst Dein Feld "Geburtsdatum". Schreibe jetzt
statt "Geburtsdatum" dort rein. Extract ... geht hier auch.
Führe die Abfrage anschließend aus. Es dürfte nur das Jahr erscheinen.
Gruß
Robert
Re: Datum zerlegen
Verfasst: So 11. Dez 2016, 19:27
von debrequ
Hallo RobertG,
danke für den Tip wie ich mir die Feldtypen anzeigen lassen kann. Es hat geklappt. Leider aber nicht mit der Datenbank, die ich aus Acces importiert habe. Das ist aber kein aktuelles Thema, denn die Typen sind alle richtig übernommen worden.
Mit der "Abfrage" des Geburtsjahres habe ich noch Probleme: ich habe in der Entwurfsansicht alle Felder ausgewählt, die mir in der Abfrage angezeigt werden sollen. Unter anderem auch das Feld "Geburtsdatum". So habe ich die Abfrage einmal ausgeführt. Und alles war wie ich es erwartet habe.
Nun zu meiner Frage: in der Entwurfsansicht sind die Zeilen Feld, Alias, Tabelle, Sortierung, sichtbar, Funktion, und mehrere Zeilen Kriterium zu sehen.
Ich habe nun in der Zeile Feld das Wort Geburtsdatum gelöscht und "YEAR("Geburtsdatum") AS "Geburtsjahr"" eingegeben. Das war offensichtlich falsch.
Wo muss der "Befehl" rein?
Übrigens: den Begriff "Designansicht" habe ich der Hilfe nicht gefunden. Dort habe ich nur Tabellenansicht und Entwurfsansicht gefunden.
Re: Datum zerlegen
Verfasst: So 11. Dez 2016, 20:18
von RobertG
Hallo debrequ,
debrequ hat geschrieben:
In der Entwurfsansicht sind die Zeilen Feld, Alias, Tabelle, Sortierung, sichtbar, Funktion, und mehrere Zeilen Kriterium zu sehen.
Ich habe nun in der Zeile Feld das Wort Geburtsdatum gelöscht und "YEAR("Geburtsdatum") AS "Geburtsjahr"" eingegeben. Das war offensichtlich falsch.
Wo muss der "Befehl" rein?
Wenn Du in der Zeile Feld statt "Geburtsdatum" YEAR("Geburtsdatum") einfügst, dann dürfte das schon reichen. In der grafischen Ansicht, in der Du Dich befindest, kann es auch sein, dass Du die Anführungszeichen weglassen musst.
In die Zeile Alias kannst Du dann "Geburtsjahr" eintragen. Unter diesem Begriff ist das Ganze dann in der Abfrage sichtbar.
debrequ hat geschrieben:
Übrigens: den Begriff "Designansicht" habe ich der Hilfe nicht gefunden. Dort habe ich nur Tabellenansicht und Entwurfsansicht gefunden.
Wenn Du die Abfrage erstellst (Abfrage in der Entwurfsansicht ...), dann kannst Du in dieser Entwurfsansicht über Ansicht > Designansicht an-/ausschalten in die SQL-Ansicht wechseln. Das geht auch über einen Button (vermutlich der 9. Button von links, bei mir mit einem Dreieck versehen). SQL-Code kannst Du besser bei ausgeschalteter Design-Ansicht eingeben. Ich würde mir bei jeder Abfrage diesen Code auch anschauen, um zu sehen, was denn Base da überhaupt produziert.
Die Hilfe von LO ist da nicht besonders zielführend. Lade Dir einfach das Base-Handbuch herunter. Dort kannst Du entsprechende Screenshots dazu finden.
Gruß
Robert
Re: Datum zerlegen
Verfasst: Mo 12. Dez 2016, 17:34
von debrequ
Hallo RobertG,
Soweit hat das jetzt funktioniert. Ich habe das Jahr und den Monat herausgefiltert. Nur beim Tag funktioniert das nicht. Warum?
Hier der Auszug aus der SQL-Anweisung: YEAR( "Gebdatum" ) "Jahr", MONTH( "GebDatum" ) "Monat", DAY( "GebDatum" ), "Tag"
Welches der vielen Handbücher im Internet würdest Du empfehlen?
Ich habe mir dieses hier heruntergeladen:
https://de.libreoffice.org/get-help/documentation
Ist sehr umfangreich und leider ohne Suchfunktion, oder habe ich die übershen?
Re: Datum zerlegen
Verfasst: Mo 12. Dez 2016, 20:38
von RobertG
Hallo debrequ,
wenn Dein Auszug aus der SQL-Anweisung genau übernommen wurde, dann ist da ein Komma an der falschen Stelle, nämlich vor "Tag". Zeige sonst einmal die ganze SQL-Anweisung. Vor das FROM gehört kein Komma. Wenn also "Tag" das letzte Feld ist, dann muss das Komma komplett weg.
Wenn ich vom Base-Handbuch schreibe, dann immer von der aktuellsten Fassung. Die gilt auch für alle vorhergehenden LO-Versionen. Unterschiede sind gegebenenfalls gekennzeichnet. Erst mit dem Erscheinen einer brauchbaren Fassung von Firebird als Standarddatenbank unter Base werde ich da wohl an vielen Kapiteln Änderungen bzw. Ergänzungen vornehmen.
Das aktuelle Handbuch:
https://wiki.documentfoundation.org/ima ... ig_V51.pdf
Auf diesen Link kommst Du, wenn Du auf der Dokumentationsseite nach unten scrollst und das Handbuch "Base" für V 5.1 in der *.pdf-Form suchst.
In einer *.pdf-Datei kannst Du problemlos suchen. Außerdem kannst Du auf der Seite auch das Inhaltsverzeichnis anzeigen lassen und von da zu dem jeweiligen Kapitel rutschen. Die *.odt-Dateien stehen dort nur, falls jemand etwas daraus nach irgendwohin kopieren/übernehmen möchte. Zum Lesen am Bildschirm nehme ich die *.pdf-Version.
Gruß
Robert
Re: Datum zerlegen
Verfasst: Di 13. Dez 2016, 18:43
von debrequ
Hallo RobertG
hier die komplette SQL-Anweisung:
SELECT "Mitgliedsnummer", "Geschl", "VName", "Name", "ZWort", "Straße", "PLZ", "Ort", "GebDatum", "Austritt", YEAR( "Gebdatum" ) "Geburtjahr", MONTH( "GebDatum" ) "Geburtmonat", DAY( "GebDatum" ) "Geburtstag" FROM "Mitglieder_Neu" WHERE "Austritt" IS NULL
Zwischen ""Geburtsjahr" und Month" ist doch auch ein Komma, oder ist das auch falsch?
Re: Datum zerlegen
Verfasst: Di 13. Dez 2016, 18:47
von debrequ
Noch eine Ergänzung:
Dies ist die Fehlermeldung:
"Die Dateninhalte konnten nicht geladen werden.
Die Abfrage konnte nicht ausgeführt werden.
Die Funktion wird nicht unterstützt."
Ist das ein Hinweis auf einen ganz anderen Fehler?
Re: Datum zerlegen
Verfasst: Mi 14. Dez 2016, 21:32
von RobertG
Hallo debrequ,
der Code, den Du da postest, hat die Kommas alle an der korrekten Stelle.
Code: Alles auswählen
SELECT "Mitgliedsnummer", "Geschl", "VName", "Name", "ZWort", "Straße", "PLZ", "Ort", "GebDatum", "Austritt", YEAR( "Gebdatum" ) "Geburtjahr", MONTH( "GebDatum" ) "Geburtmonat", DAY( "GebDatum" ) "Geburtstag" FROM "Mitglieder_Neu" WHERE "Austritt" IS NULL
Du erhältst also die Fehlermeldung, dass irgendeine Funktion nicht unterstützt wird? Kürze einmal den Code entsprechend:
Code: Alles auswählen
SELECT "GebDatum", YEAR( "Gebdatum" ) "Geburtjahr", MONTH( "GebDatum" ) "Geburtmonat", DAY( "GebDatum" ) "Geburtstag" FROM "Mitglieder_Neu" WHERE "Austritt" IS NULL
... und dann schrittweise weiter. Du hast in der Tabelle "Mitglieder_Neu" nicht aus Versehen bereits ein Feld, das den gleichen Namen wir eine der gewählten Aliasbezeichnungen hat?
Welche Datenbank benutzt Du? Die interne HSQLDB?
Gruß
Robert