Seite 1 von 1

Anfänger - Leeres Feld in Abfrage mit 1 füllen

Verfasst: So, 03.11.2013 13:10
von chris31
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

Re: Anfänger - Leeres Feld in Abfrage mit 1 füllen

Verfasst: So, 03.11.2013 13:23
von pmoegenb
Hallo Chris,
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
Literatur für SQL findest Du hier.

Re: Anfänger - Leeres Feld in Abfrage mit 1 füllen

Verfasst: So, 03.11.2013 18:46
von RobertG
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

Re: Anfänger - Leeres Feld in Abfrage mit 1 füllen

Verfasst: So, 03.11.2013 20:34
von chris31
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

Re: Anfänger - Leeres Feld in Abfrage mit 1 füllen

Verfasst: So, 03.11.2013 20:47
von RobertG
Hallo Chris,

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".
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

Re: Anfänger - Leeres Feld in Abfrage mit 1 füllen

Verfasst: Mo, 04.11.2013 11:30
von chris31
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