View Full Version : Select Abfrage mit Vorgabe aus Exceldatei
StevEiserman
05-04-19, 08:56
Hallo AS400 Freunde,
ich bin neu und habe so gut wie keine Ahnung von SQL und benoetige dringend
Eure Hilfe. Ich erstelle gerade in Excel ueber eine ODBC-Verbindung eine Bestand-Abfrage
auf unser AS400 was auch funktioniert. Jetzt sollen aber nur alle Artikel ausgegeben
werden die in Tabelle1 Spalte A "Artikel" stehen (Pfad:C:\Auswertung\Bestand.xlsx).
Das ist die selbe Excel-Datei wo die Bestandsabfrage läuft (Tabelle2)
Ich weis nicht wie ich auf Tabelle1 Spalte A "Artikel" verweisen kann.
select bmfirm, bmiden, bmidv, bmprnr, bmqkz, bmqsta,
bmort, bmber, digits(bmreg) concat '-' concat
digits(bmhor) concat '-' concat digits(bmver) concat '/'
concat bmsegm,
bmbmen, bmvmen, bmlenr
from pbestlo
where bmkonz = 'GHK'
order by bmfirm, bmiden, bmort, bmreg
Hast du Bestand.xlsx aus der iSeries geholt? Dann kannst du damit (iSeries) verknüpfen.
select feld(er) from Datei1 a Join Datei2 b on a.Feld=b.Feld and ... where
Hast du die nur im Excel, musst du es im Excel lösen.
StevEiserman
05-04-19, 09:37
Ich habe die Daten leider nur in Excel,
bedeutet also nur mit Formeln, also sehr zäh.
Wie bekomme ich die Datei in iSeries?
endweder mit kostenpflichtigen Tools oder als csv speichern und mit
cpyfrmimpf (F9 + F10)
StevEiserman
05-04-19, 11:05
Hallo Robi
kannst Du mir
cpyfrmimpf (F9 + F10) erklären,
verstehe leider nur Bahnhof?
wenn du die Datei als csv vorliegen hast, kannst du Sie mit
CPYFRMIMPF übernehmen
Um alle möglichen Einstellungen zu sehen musst du im Befehl F9 und F10 drücken
Wenn die Datei im IFS liegt, gibst du den Pfad an, liegt sie auf einem Server musst du über QNTC gehen (mit MKDIR den Pfad verbinden)
StevEiserman
05-04-19, 11:24
Danke für die Info.
Welche kostenpflichtigen Tools kannst Du empfehlen, die gut verständlich sind?
Die AS400 hat standartmäßig Probleme ein Excelfile(.xls) zu lesen.
Deshalb solltest du das Excelfile in ein CSV-File wandeln.
Damit kann die AS400 super umgehen.. Tutorials dazu findest du in Mengen..
Zum Ablauf..
Die As400 muss ja irgendwie auf deine CSV-Datei zugreifen.
Entweder du schiebst die CSV-Datei auf das Dateisystem der AS400 (der einfachste Weg)
Oder die AS400 muss auf das Filesystem eines anderen Servers oder deinen PC zugreifen. (nicht so easy)
Verbinde also das Dateisystem (IFS) der AS400 mit deinem PC (Einfach unter windows Netzlaufwerk verbinden im Explorer) oder mit irgendeinem Tool (Hauptsache du kommst auf das IFS).
So kannst Daten stressfrei auf die AS400 von deinem Rechner aus schieben.
Mit QSH (As400-Befehl) kannst du auf der AS400 das IFS durchblättern. (Wenn du die CSV-Datei hier findest, dann hast du es schon geschafft)
Hol dir dann Pfad der CSV-Datei im IFS der AS400 und fang mit dem CPYFRMIMPF Befehl an.
Der Befehl kopiert die CSV-Datei in eine Datenbankdatei.
CPYFRMIMPF -> Prompten (F4) -> Alle Parameter anzeigen (F9)
Abgesehen von den Pflichtangaben im Befehl, solltest du noch Feldbegrenzer (das Zeichen, womit du die Daten der Exceldatei getrennt hast) angeben..
Danach kannst mit strsql dir die kopierten Daten in der Datenbankdatei anschauen und damit rumspielen.
So kompliziert ist der Spaß nicht, wenn mans paar mal gemacht hat.
Wenn die Frage mit kostenpflichtigen Tools noch relevant ist, so gibt es da mehrere:
z.B. iGetExcel direkt auf AS/400
z.B. Upload/400 direkt als AddIn für Excel (Office 97 bis Office 2019)
Und kompliziert sind diese Tools eigentlich garnicht.
StevEiserman
05-04-19, 13:21
Vielen Dank für Eure Hilfe, jetzt blicke ich ein bischen durch.