Hallo,
ich bin neu hier im Forum und komme das erste Mal mit Datenbanken in Berührung. Durch die grafische Oberfläche von Base und was in Anleitungen zu finden ist, ließ sich die Abfrage bis jetzt gut ohne tiefere Kenntnisse erstellen.
Jetzt habe ich aber das Problem, dass in einer Spalte Felder teilweise leer sind, dort soll eine 1 eingetragen werden, in den restlichen Feldern soll der vorhandene Wert erhalten bleiben. Bei einem anderen leeren Feld, soll der Wert aus dem Feld weiter vorn in der Zeile der Abfrage, eingefügt werden.
Sämtliche "When (IFF) Then Else" Konstruktionen laufen ins Leere und generieren einen Fehler. Ist in einer Abfrage obiges Probleme überhaupt lösbar? Im Handbuch ließ sich leider Nichts finden.
Vielleicht nötig zu wissen. Die Datenquelle ist eine SQL-Datenbank und die Abfrage bezieht sich auf mehrere Tabellen.
Über eine kurze Hilfestellung, auch allgemeine Erklärung, wäre ich sehr dankbar.
Viele Grüße
Chris
Anfänger - Leeres Feld in Abfrage mit 1 füllen
Moderator: Moderatoren
-
- ********
- Beiträge: 4330
- Registriert: Di, 22.06.2004 12:02
- Wohnort: 71134 Aidlingen
- Kontaktdaten:
Re: Anfänger - Leeres Feld in Abfrage mit 1 füllen
Hallo Chris,
in der SQL-Ansicht z. B.
Literatur für SQL findest Du hier.
in der SQL-Ansicht z. B.
Code: Alles auswählen
Update Datenbanktabelle
SET Feld1 = 1
WHERE Feld1 is Null
Code: Alles auswählen
Update Datenbanktabelle
SET Feld1 = Feld2
WHERE Feld1 is Null
Gruß
Peter
---------------------------------------------------------------------------
Windows 7 Prof. 64-bit SP1, LibreOffice 4.3.6.2 und AOO 4.1.1
Peter
---------------------------------------------------------------------------
Windows 7 Prof. 64-bit SP1, LibreOffice 4.3.6.2 und AOO 4.1.1
Re: Anfänger - Leeres Feld in Abfrage mit 1 füllen
Hallo Chris,
dass Du dazu im Handbuch nichts gefunden hast scheint mir ein Problem des Spagates zu sein, im Handbuch wirklich alles zu bringen und dann auch noch leserInnennah zu erklären.
Das, was Peter aufgeschrieben hast, steht im Kapitel Tabellen → Eingabe von Daten → Eingabemöglichkeiten über SQL direkt → Bestehende Datensätze ändern.
Vielleicht sollte im nächsten Update des Handbuches einiges noch näher am Nutzer beschrieben werden.
Gruß
Robert
dass Du dazu im Handbuch nichts gefunden hast scheint mir ein Problem des Spagates zu sein, im Handbuch wirklich alles zu bringen und dann auch noch leserInnennah zu erklären.
Das, was Peter aufgeschrieben hast, steht im Kapitel Tabellen → Eingabe von Daten → Eingabemöglichkeiten über SQL direkt → Bestehende Datensätze ändern.
Vielleicht sollte im nächsten Update des Handbuches einiges noch näher am Nutzer beschrieben werden.
Gruß
Robert
Re: Anfänger - Leeres Feld in Abfrage mit 1 füllen
Hallo Peter, danke für die schnelle und kompetente Hilfe.
Was ich vergessen hatte zu erwähnen. Da das Feld nur in der Abfrage, aber nicht in der zugehörigen Datenbanktabelle geändert werden soll, müsste ich eine 2.Abfrage stellen, mit den Updatebefehlen, die sich auf die 1.Abfrage bezieht. Würde das so gehen?
Danke Robert für den Hinweis, da hatte ich leider nicht gesucht. Werde mich auf jeden Fall noch weiter einlesen.
Viele Grüße und noch einen schönen Sonntag
Chris
Was ich vergessen hatte zu erwähnen. Da das Feld nur in der Abfrage, aber nicht in der zugehörigen Datenbanktabelle geändert werden soll, müsste ich eine 2.Abfrage stellen, mit den Updatebefehlen, die sich auf die 1.Abfrage bezieht. Würde das so gehen?
Danke Robert für den Hinweis, da hatte ich leider nicht gesucht. Werde mich auf jeden Fall noch weiter einlesen.
Viele Grüße und noch einen schönen Sonntag
Chris
Re: Anfänger - Leeres Feld in Abfrage mit 1 füllen
Hallo Chris,
Peters Lösung ging von einer Änderung der Daten aus.
Was Du suchst ist vermutlich die Funktion "IFNULL"
Das klappt dann natürlich direkt in der Abfrage. Entweder wird das Feld so dargestellt, oder es wird eine '1' eingetragen, wenn das Feld leer ist.
Der Befehl funktioniert zumindest mit der internen HSQLDB und mit MySQL/MariaDB.
Gruß
Robert
Peters Lösung ging von einer Änderung der Daten aus.
Was Du suchst ist vermutlich die Funktion "IFNULL"
Code: Alles auswählen
SELECT IFNULL("Feld",'1') AS "Feldneu" FROM "Tabellenname".
Der Befehl funktioniert zumindest mit der internen HSQLDB und mit MySQL/MariaDB.
Gruß
Robert
Re: Anfänger - Leeres Feld in Abfrage mit 1 füllen
Hallo Robert,
klasse, danke. Funktioniert ohne zweite Abfrage, die IFNULL Funktion musste bloß auf ISNULL geändert werden, da unser Datenbank scheinbar nur deutsch versteht.
Viele Grüße
Chris
klasse, danke. Funktioniert ohne zweite Abfrage, die IFNULL Funktion musste bloß auf ISNULL geändert werden, da unser Datenbank scheinbar nur deutsch versteht.
Viele Grüße
Chris