PDA

View Full Version : SQL insert mit variable



Robi
20-03-03, 12:59
Hallo *all,
für eine Statistik ist das ausgenben von Daten in eine Summendatei geplant.
z.b. alle Sätze von Produkt 'A', 'B', 'C'
Wertmäßig zusammenfassen und als Produkt 'ABC' in die Zieldatei stellen.
(sehr vereinfachtes Beispiel)

also: insert into ... set wert, produkt, feld3 ... = (select sum(wert) , 'ABC', feld3... from ... where Produkt in ('A', 'B', 'C'))

soweit noch einfach.
nun gibt es aber eine 2. Bedingung, die da sagt : Produkt 'X', und 'Y' zusammenfassen zu 'Z'

Ich muß also aus der oben genannten Konstante 'ABC' die variable INHALT machen und diese zur Laufzeit füllen
Ich dachte an ein ... insert into ... set wert, produkt, feld3 ... = (select sum(wert) , inhalt, feld3... from ... where Produkt in ('A', 'B', 'C') as 'ABC' or Produkt in ('X', 'Y') as 'Z')

gibt es dafür eine Möglichkeit (auser 2 SQL Laufe)

Danke
Robi

Fuerchau
20-03-03, 15:08
Der "insert" kann auch mittels "select" gefüllt werden:

insert into ziel
select ... from quelle where ...

Hier muss jedes Feld des Selects eine Feld des Ziels entsprechen

oder:

insert into Ziel (f1, f2, f3)
values (select f1, f2, f3 from quelle where ...)

Robi
20-03-03, 15:23
hallo Herr Fuerchau,

der insert soll ja per select gemacht werden, wie das geht ist auch bekannt, was ich nicht weis, ist wie ich das variabel hin bekomme
Robi

Fuerchau
21-03-03, 09:16
Dann ist die Lösung ein QM-Query.
Über STRQM kannst du den SQL-Befehl entsprechend eingeben.
Parameter werden wie in CL mit &PARM definiert, z.B.:

insert into file
select &parm1 from file2
where &parm3

Mittels STRQMQRY kannst du dann die Parameter übergeben und das SQL ausführen.
Siehe hierzu auch weitere Einträge im Forum.