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 :)