BITTE helfen Sie uns HEUTE mit einer SPENDE
Helfen Sie das LibreOffice Forum zu erhalten!

❤️ DANKE >><< DANKE ❤️

> KEINE WERBUNG FÜR REGISTRIERTE BENUTZER!<
Ihre Spende wird für die Deckung der laufenden Kosten sowie den Erhalt und Ausbau 🌱 des LibreOffice Forums verwendet.
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗

GELÖST: Anfügeabfrage

Base ermöglicht es Ihnen, Ihre Daten in einer Datenbank direkt mit LibreOffice zu bearbeiten.
Ich Bins
Beiträge: 236
Registriert: Do 2. Aug 2018, 12:30

GELÖST: Anfügeabfrage

Beitrag von Ich Bins » Mo 24. Aug 2020, 20:51

Hallo zusammen,

wenn ich nicht auf dem Holzweg bin ist eine Anfügeabfrage nur über Extras/SQL... möglich.
Zur Erstellung einer Anfügeabfrage auf Basis einer Tabelle mit vielen Feldern möchte ich Teile vom SQL der GUI-Abfrage verwenden. Leider wird in das GUI-SQL zu jedem Feld zusätzlich auch der Alias geschrieben SELECT "Feld1" AS "Feld1", "Feld2" AS "Feld1", …. Gibt es einen Möglichkeit den Alias zu vermeiden?

Denn:

Code: Alles auswählen

INSERT INTO "tabProbe" ("Feld1" AS "Feld1", "Feld2" AS "Feld2")
SELECT "Feld1" AS "Feld1", "Feld2" AS "Feld2"
FROM "tabQuelle"
WHERE "Feld1" < 50 ORDER BY "Feld1" ASC
Liefert den Fehler:
1: Unexpected token: AS in statement [INSERT INTO "tabProbe" ("Feld1" AS]

--------------------------------------------------------------
(tabProbe enthält die gleiche Struktur wie tabQuelle).

Viele Grüße
Ich Bins
Zuletzt geändert von Ich Bins am Mi 26. Aug 2020, 18:06, insgesamt 1-mal geändert.

RobertG
Beiträge: 2732
Registriert: Sa 19. Mai 2012, 17:37
Kontaktdaten:

Re: Anfügeabfrage

Beitrag von RobertG » Mo 24. Aug 2020, 21:04

Hallo Ich Bins,

kannst Du einmal sagen, womit Du da arbeitest? Ist doch wohl die interne HSQLDB, oder? Welche LibreOffice-Version macht denn beständig ein Alias dahinter? Das macht bei mir keine der Versionen, die ich installiert habe.

Gruß

Robert
https://de.libreoffice.org/get-help/documentation/
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=base_handbuch
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=xml_formulare

Ich Bins
Beiträge: 236
Registriert: Do 2. Aug 2018, 12:30

Re: Anfügeabfrage

Beitrag von Ich Bins » Mo 24. Aug 2020, 21:20

Aber gerne

HSQLDB

Version: 6.3.6.2 (x64)
Build-ID: 2196df99b074d8a661f4036fca8fa0cbfa33a497
CPU-Threads: 4; BS: Windows 10.0; UI-Render: Standard; VCL: win;
Gebietsschema: de-DE (de_DE); UI-Sprache: de-DE
Calc: threaded

F3K Total
Beiträge: 2410
Registriert: So 10. Apr 2011, 10:10

Re: Anfügeabfrage

Beitrag von F3K Total » Di 25. Aug 2020, 07:15

Moin,
das passiert nur, wenn mehr als eine Tabelle bei der Erstellung einer Abfrage in der GUI verwendet werden.
Gruß R
Windows 10: AOO, LO Linux Mint: AOO, LO

Ich Bins
Beiträge: 236
Registriert: Do 2. Aug 2018, 12:30

Re: Anfügeabfrage

Beitrag von Ich Bins » Di 25. Aug 2020, 10:28

Hallo F3K Total,

das hatte ich gestern beim Testen im GUI-Abfragentwurf noch nie.

Aber jetzt beim Nachvollziehen ist mir folgendes aufgefallen.
Verwendet man den Assistenten zur Erstellung der Abfrage, fügt alle Felder der gewählten Tabelle ein und klickt nicht auf "Weiter" sondern auf "Fertig" wird die komplette Tabelle in der Abfrage angezeigt und die Abfrage wird mit automatisch vergebenem Namen gespeichert. Schaut man sich diese Abfrage dann in der SQL-Ansicht an ist der Alias vorhanden.
Nicht nur der Alias sondern zusätzlich auch noch zu jedem Feld der Tabellenname.

Code: Alles auswählen

SELECT "tabProbe"."ID" AS "ID", "tabProbe"."Feld1" AS "Feld1", "tabProbe"."Feld2" AS "Feld2" FROM "tabProbe" "tabProbe"
Vermutlich hatte ich auf diese Weise eine Abfrage erstellt.
Habe zusätzlich noch festgestellt, dass der Alias bei Verwendung des Assistenten überhaupt nicht verhindert werden kann, auch wenn man in Schritt 7 alle Alias entfernt. Seltsamerweise funzt die Abfrage auch nicht, wenn man ein einfaches Kriterium einfügt.

Schritt 8 Übersicht
Felder in der Abfrage: (tabProbe.ID), (tabProbe.Feld1), (tabProbe.Feld2)
Sortierreihenfolge: (ASC)
Such-Bedingungen: ist gleich 'Gerste'
Es wurden keine Gruppierungen festgelegt.
Es wurden keine Gruppierungsbedingungen festgelegt.

"Fertig"

Die Dateninhalte konnten nicht geladen werden.
Unexpected token: in statement [SELECT "tabProbe"."ID" AS "", "tabProbe"."Feld1" AS "", "tabProbe"."Feld2" AS "" FROM "tabProbe" "tabProbe" WHERE ( "tabProbe"."Feld1" = 'Gerste' ) ORDER BY "ID"]

"OK"

Doppelklicke ich die dennoch gespeicherte Abfrage erhalte ich erneut die gleiche Fehlermeldung.

"OK"

Öffne ich die Abfrage über Bearbeiten im Kontextmenü und starte sie darin, unverändert, funzt die Abfrage.
Das Seichern der Abfrage ist nicht angezeigt. Wenn man man ohne zu speichern schließt verursacht ein nachfolgender Doppelklick erneut die Fehlermeldung.
Speichert man die Abfrage auch ohne Aufforderung oder rotem Punkt auf dem Diskettensymbol funzt sie auch beim Doppelklicken und enthält im SQL keinen Alias und keinen zusätzlichen Tabellennamen.

Code: Alles auswählen

SELECT "ID", "Feld1", "Feld2" FROM "tabProbe" WHERE "Feld1" = 'Gerste' ORDER BY "ID" ASC
:-(

Viele Grüße
Ich Bins

F3K Total
Beiträge: 2410
Registriert: So 10. Apr 2011, 10:10

Re: Anfügeabfrage

Beitrag von F3K Total » Di 25. Aug 2020, 16:05

Man, man, man, hier ist was los, was für ein Roman.
Suchst du Haare in der Suppe, oder hast du noch keine Abfrage ohne Assistenten erstellt?
Nimm doch mal "Abfrage in der Entwurfsansicht erstellen ..."
Da ist es so, wie ich es geschrieben habe...
aus:
erists1.png
erists1.png (6.56 KiB) 3023 mal betrachtet
... wird
erists2.png
erists2.png (12.51 KiB) 3023 mal betrachtet
oder aus
erists3.png
erists3.png (8.59 KiB) 3013 mal betrachtet
wird dann

Code: Alles auswählen

SELECT "ID", "Bildname", "URL" FROM "Bilder" WHERE "URL" LIKE '%.png' ORDER BY "ID" ASC
R
Windows 10: AOO, LO Linux Mint: AOO, LO

Ich Bins
Beiträge: 236
Registriert: Do 2. Aug 2018, 12:30

Re: Anfügeabfrage

Beitrag von Ich Bins » Di 25. Aug 2020, 18:17

Hallo F3K Total,
Ich Bins hat geschrieben:
Di 25. Aug 2020, 10:28
das hatte ich gestern beim Testen im GUI-Abfragentwurf noch nie.
Damit meinte ich:
F3K Total hat geschrieben:
Di 25. Aug 2020, 07:15
das passiert nur, wenn mehr als eine Tabelle bei der Erstellung einer Abfrage in der GUI verwendet werden.
"Abfrage in der Entwurfsansicht erstellen ..." war mir bereits bekannt, vielen Dank für die Anleitung.

Weil ich mir die vielen Doppelklicks beim Erstellen des SQL für die Anfügeabfrage mit 46 Feldern ersparen wollte nutzte ich den "seltsam" funktionierenden Assistenten.
Gibt es eine andere Möglichkeit um alle Felder auf einmal (nicht *) in den Entwurf einzufügen als jedes einzelne Feld doppelt zu klicken oder einzeln per drag and drop?

Viele Grüße
Ich Bins

RobertG
Beiträge: 2732
Registriert: Sa 19. Mai 2012, 17:37
Kontaktdaten:

Re: Anfügeabfrage

Beitrag von RobertG » Di 25. Aug 2020, 19:58

Hallo Ich Bins,

du arbeitest ja mit der HSQLDB, richtig?
Wenn Du sehr viele Felder in einer Tabelle hast, dann mach' einfach

Code: Alles auswählen

SELECT * FROM "Tabelle"
... und das als Ansicht. Speichere die Ansicht ab. Schließe sie und öffne sie erneut zum Bearbeiten. Die Ansicht macht daraus einzelne Feldbezeichnungen, allerdings immer zusammen mit dem Tabellennamen.

Gruß

Robert
Zuletzt geändert von RobertG am Mi 26. Aug 2020, 16:00, insgesamt 1-mal geändert.
https://de.libreoffice.org/get-help/documentation/
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=base_handbuch
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=xml_formulare

Ich Bins
Beiträge: 236
Registriert: Do 2. Aug 2018, 12:30

Re: Anfügeabfrage

Beitrag von Ich Bins » Di 25. Aug 2020, 21:26

Hallo Robert,
RobertG hat geschrieben:
Di 25. Aug 2020, 19:58
du arbeitest ja mit der HSQLDB, richtig?
Ja genau.
Ich kann das leider nicht nachvollziehen.
1. Versuch: Abfrage in der Entwurfsansicht erstellen/Tabelle wählen/Stern runterziehen/speichern/schließen. Bearbeiten - unverändert. In SQL-Ansicht bearbeiten - unverändert

Code: Alles auswählen

SELECT * FROM "Meine_Tabelle"
2. Versuch: Abfrage in SQL-Ansicht erstellen/

Code: Alles auswählen

SELECT * FROM "Meine_Tabelle"
eingeben/speichern/schließen. Bearbeiten - unverändert. In SQL-Ansicht bearbeiten - unverändert

Code: Alles auswählen

SELECT * FROM "Meine_Tabelle"
Was mache ich falsch?

Gruß
Ich Bins

RobertG
Beiträge: 2732
Registriert: Sa 19. Mai 2012, 17:37
Kontaktdaten:

Re: Anfügeabfrage

Beitrag von RobertG » Mi 26. Aug 2020, 15:59

Hallo Ich Bins,

nicht eine Abfrage erstellen. In dem Unterfenster von "Tabellen" eine "Ansicht erstellen ...". Diese Ansicht wird wie eine Abfrage definiert.

Code: Alles auswählen

SELECT * FROM "Meine_Tabelle"
Diese Ansicht speichern und schließen.
Danach mit der rechten Maustaste auf die Ansicht und "In SQL-Ansicht bearbeiten ..."

Das geht nicht mit allen Datenbanken. Bei manchen, auch bei der internen Firebird-Datenbank, lässt sich dieser Menüpunkt gar nicht aufrufen. Der SQL-Code sieht dann so aus:

Code: Alles auswählen

SELECT  "Meine_Tabelle","Feld1",  "Meine_Tabelle","Feld2", "Meine_Tabelle","Feld3"  FROM "Meine_Tabelle"
Gruß

Robert
https://de.libreoffice.org/get-help/documentation/
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=base_handbuch
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=xml_formulare

An alle, die das LibreOffice-Forum nutzen:


Bitte beteiligen Sie sich mit 7 Euro pro Monat und helfen uns bei unserem Budget für das Jahr 2024.
Einfach per Kreditkarte oder PayPal.
Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet.

❤️ Vielen lieben Dank für Ihre Unterstützung ❤️

Antworten