von heinz_ketchup » Sa, 16.02.2008 09:51
Hallo,
ich habe eine Prozedur, die aus einer Tabelle Datensätze auslesen soll und Teile davon in eine andere Tabelle reinschreiben soll.
In der Ausgangstabelle stehen Konten und die dazugehörigen Monatswerte:
Konto, Saldo_1, Saldo_2, Saldo_3, ... ,Saldo_12
In der Zieltabelle sollen die Datensätze so aussehen:
Konto, Saldo_1, Monat_1, Jahr
Konto, Saldo_2, Monat_2, Jahr
Konto, Saldo_3, Monat_3, Jahr
So, meine Prozedur sieht bislang so aus:
Code: Alles auswählen
BEGIN
DECLARE monat INT;
DECLARE jahr INT;
DECLARE saldo CHAR;
SET monat = 1;
SET jahr = 2007;
SET saldo = 'saldenliste_original.Saldo_ ';
WHILE monat < 13 DO
INSERT INTO saldenliste ( sl_ktonr, sl_monatssaldo, sl_monat, sl_jahr)
SELECT saldenliste_original.Konto,
saldo & monat, # ich glaube hier liegt der Fehler mit den 2 verschiedenen Datentypen CHAR & INT
monat,
jahr
FROM saldenliste_original;
SET monat = monat + 1;
END WHILE;
END
Ich lass einfach die Variable 'monat' hoch zählen und damit wird dann das Feld mit dem entsprechenden Monatssaldo ausgewählt.
Das funktioniert auch soweit, was die Struktur anbelangt. Leider bekomme ich keine Werte übergeben.
Ich glaube es liegt daran, dass ich die Variable 'saldo' CHAR mit der Variable 'monat' INT verknüpfen möchte. Wie kann ich meine Variable 'monat' als CHAR definieren und diese trozdem hoch zählen lassen?
fragt Werner
Hallo,
ich habe eine Prozedur, die aus einer Tabelle Datensätze auslesen soll und Teile davon in eine andere Tabelle reinschreiben soll.
In der Ausgangstabelle stehen Konten und die dazugehörigen Monatswerte:
Konto, Saldo_1, Saldo_2, Saldo_3, ... ,Saldo_12
In der Zieltabelle sollen die Datensätze so aussehen:
Konto, Saldo_1, Monat_1, Jahr
Konto, Saldo_2, Monat_2, Jahr
Konto, Saldo_3, Monat_3, Jahr
So, meine Prozedur sieht bislang so aus:
[code]
BEGIN
DECLARE monat INT;
DECLARE jahr INT;
DECLARE saldo CHAR;
SET monat = 1;
SET jahr = 2007;
SET saldo = 'saldenliste_original.Saldo_ ';
WHILE monat < 13 DO
INSERT INTO saldenliste ( sl_ktonr, sl_monatssaldo, sl_monat, sl_jahr)
SELECT saldenliste_original.Konto,
saldo & monat, # ich glaube hier liegt der Fehler mit den 2 verschiedenen Datentypen CHAR & INT
monat,
jahr
FROM saldenliste_original;
SET monat = monat + 1;
END WHILE;
END
[/code]
Ich lass einfach die Variable 'monat' hoch zählen und damit wird dann das Feld mit dem entsprechenden Monatssaldo ausgewählt.
Das funktioniert auch soweit, was die Struktur anbelangt. Leider bekomme ich keine Werte übergeben.
Ich glaube es liegt daran, dass ich die Variable 'saldo' CHAR mit der Variable 'monat' INT verknüpfen möchte. Wie kann ich meine Variable 'monat' als CHAR definieren und diese trozdem hoch zählen lassen?
fragt Werner