Seite 1 von 1
[Gelöst] Daten aus einer Tabelle in eine andere kopieren
Verfasst: Sa 6. Aug 2016, 18:58
von ehtron
Hi

ich fange gerade erst an mit lo base.
nun versuche ich aus einer bestehenden Dbase db, daten in eine zweite neu angelegte datenbank zu kopieren.
die orginal dbf liegt unter tabellen vor, ich kann per sql selcten usw.
probelm: das dortige datums feld ist text, und um später von - bis selektionen zu realisieren, wollte ich die relevanten felder einfach
in eine neue tabelle mit datumsfeld als date übertagen. das ganze muss später zur laufzeit passieren.
dies als test beispiel.
Code: Alles auswählen
INSERT INTO "Import-Tabelle" ("Datum" ) select ("DATUM") FROM "import"
und viele andere ähnliche versuche scheitern mit
Der gesetzte Befehl ist kein SELECT-Befehl.
Es sind nur Abfragen erlaubt.
evtl. hat ja jemand eine andere idee..
ziel: filterung von datum bis datum aus einem in der orginal dbf (nicht änderbar) text datums feld.
ps. mir wäre es am liebsten, das ganze rein in sql, ohne makros zu realisieren.
ich würde mich über hilfe sehr freuen.. stecke da momentan fest.
lg. ehtron

Re: Daten aus einer Tabelle in eine andere kopieren
Verfasst: Sa 6. Aug 2016, 19:17
von F3K Total
Hallo ehtron,
die beste Aussicht auf erfolgreiche Hilfe hast du dann, wenn du eine ggf. anonymisierte Beispieldatei zur Verfügung stellst, also hier hochlädst.
Ein paar Zeilen in der .dbf Datei reichen.
Gruß R
Re: Daten aus einer Tabelle in eine andere kopieren
Verfasst: Sa 6. Aug 2016, 20:59
von RobertG
Hallo ethron,
zwei zusätzliche Anmerkungen zu dem von R.
1. Die Fehlermeldung, die Du hast, kommt vermutlich daher, dass Du nicht Extras > SQL zur Eingabe nutzt. Du versuchst das vermutlich in dem Abfrageeditor.
2. Du wirst Probleme haben, den Inhalt eines Textfeld in ein Datumsfeld zu kopieren - da wird nicht automatisch das Format umgewandelt. Die Felder bleiben leer.
Gruß
Robert
Re: Daten aus einer Tabelle in eine andere kopieren
Verfasst: Sa 6. Aug 2016, 21:35
von ehtron
Hi

danke für eure unterstützung

oha robert, wenn das so ist, wäre mein lösungsansatz natürlich nicht zielführend
ich habe es auch direkt im sql versucht...
ich habe mal eine beispiel db angehängt.. ist natürlich normalerweise grösser und enthält auch weit mehr spalten.
wie geschrieben.. die quell db kann ich nicht beeinfussen, und muss zur laufzeit der auswertung immer aktuell eingelesen werden.
brauche also eine abfrage, mit formular, mit datums selektion von - bis um datumsbereiche zu selektieren.
später dann noch kulmulierung diverser umsatz summen, die nicht im beispiel vorhanden sind.
Vielen Dank für eure unterstützung
lg. ehtron

Re: Daten aus einer Tabelle in eine andere kopieren
Verfasst: Sa 6. Aug 2016, 22:16
von F3K Total
Hallo,
ich habe es nun so gemacht:
- Die dBase-Datenbank geöffnet
- Daten in ein Calc-Sheet geschoben
- Die Text-Datumsspalte mit Daten/Text in Spalten in echtes Datum konvertiert
- Die Calc Tabelle in eine HSQL-DB importiert
Anbei das Ergebnis.
Gruß R
Re: Daten aus einer Tabelle in eine andere kopieren
Verfasst: Sa 6. Aug 2016, 22:20
von ehtron
Hi

ja so kann man das natürlich machen...
nur das muss alles automatisch passieren.
endziel.. formular > datumsbereiche sezten, knopf drücken

passend für endanwender
die abfrage funkt ja schon prima

nur wie automatisiere ich die datenübertragung?
oder habe ich da auf die schnelle was übersehen?
Re: Daten aus einer Tabelle in eine andere kopieren
Verfasst: Sa 6. Aug 2016, 22:53
von F3K Total
Hallo,
es geht doch, nur die Tabelle
import2.dbf ersetzen ...
Dies ist die Abfrage, die den Text nach dBase-SQL-Syntax in ein Datum wandelt und gleichzeitig per Parameter filtert:
Code: Alles auswählen
SELECT
"AUFNR",
"AUFBEZ",
"KUNDNR",
"NAME",
CONCAT( CONCAT( CONCAT( CONCAT( CONCAT( CONCAT( '20', RIGHT( "DATUM", 2 ) ), '-' ), SUBSTRING ( "DATUM", 4, 2 ) ) ), '-' ), LEFT( "DATUM", 2 ) ) AS "DATENEW"
FROM
"import2"
WHERE
( CONCAT( CONCAT( CONCAT( CONCAT( CONCAT( CONCAT('20',RIGHT( "DATUM",2)),'-'),SUBSTRING("DATUM",4,2))),'-'),LEFT("DATUM",2))>=:qVON OR :qVON IS NULL )
AND
( CONCAT( CONCAT( CONCAT( CONCAT( CONCAT( CONCAT('20',RIGHT( "DATUM",2)),'-'),SUBSTRING("DATUM",4,2))),'-'),LEFT("DATUM",2))<=:qBIS OR :qBIS IS NULL )
Mach mal einen
Rechtsklick auf
Abfrage1,
in SQL Ansicht bearbeiten...
Es ist möglich im Formular
kein Datum oder nur
VON oder
BIS einzugeben.
Viel Erfolg beim Nachbauen.
Gruß R
Re: Daten aus einer Tabelle in eine andere kopieren
Verfasst: So 7. Aug 2016, 12:26
von ehtron
Hi

danke euch erstmal, und muss mich damit mal ausseinander setzen

ich melde mich dann bei fragen dazu
danke

lg. ehtron
Re: Daten aus einer Tabelle in eine andere kopieren
Verfasst: So 7. Aug 2016, 19:48
von ehtron
Hi

ich habe in dem kontext nun das problem...
ich linke auf die neue frage mal, da es ja auch im direkten zusammenhang mit meinem hier gestarteten project hilfen steht.
http://www.libreoffice-forum.de/viewtop ... 10&t=16556
lg. ehtron

Re: Daten aus einer Tabelle in eine andere kopieren
Verfasst: Di 9. Aug 2016, 15:56
von ehtron
Hi

Vielen Dank für eure hilfe, besonders hier an F3K Total

funktionert nun alles wie gewünscht
lg. ehtron
