MySQL Datensätze schreiben mit Stored Procedure ?
Verfasst: Sa, 26.01.2008 16:14
Hallo,
ich brauche wieder mal eure Hilfe, bei einem Problem:
Ich habe in einer Istdaten-Tabelle folgende Buchhaltungsdaten:
Konto-Nr, Kostenstellen-Nr, Kontenbezeichnung, Buchungswert, Buchungsmonat, Buchungsjahr (PS: die Kontenbezeichnung hole ich aus einer Konten-Tabelle)
Nun möchte ich die Istdaten pro Konto und Kostenstelle und Jahr auf den Jahreswert (Summe p.a.) verdichten. (Das ist ja nicht schwer)
Die so verdichteten Datensätze möchte ich nun in eine Plandaten-Tabelle schreiben und 12-teln, so dass ich aus dem einen verdichteten Datensatz 12 Datensätze mit gleiche Inhalten, aber unterschiedlichen Monaten (1 bis 12) in meiner Plandaten-Tabelle stehen habe.
Da ich das ganze flexibel benötige, also die Anzahl der Monate variieren (12, 18, 24, 36 ... Monate) können muss, möchte ich das mit einer While-Schleife in einer Prozedur lösen. Die Anzahl der Monate möchte ich später aus einer Steuerungstabelle holen.
Hier mein Ansatz für die Prozedur:
So, soweit bin ich schon. Jetzt mault immer mein GUI-Tool Navicat, wenn ich die Prozedur speichern möchte mit Sytaxerror near Zeile @monat. Ich habe auch schon die Variablendeklaration von @monat mit := probiert. Das passt ihm auch nicht.
Vielleicht sieht ja ein geübteres SQL-Auge meinen Anfängerfehler sofort. Schon jetzt danke für eure Hilfe!
Viele Grüße
Werner
ich brauche wieder mal eure Hilfe, bei einem Problem:
Ich habe in einer Istdaten-Tabelle folgende Buchhaltungsdaten:
Konto-Nr, Kostenstellen-Nr, Kontenbezeichnung, Buchungswert, Buchungsmonat, Buchungsjahr (PS: die Kontenbezeichnung hole ich aus einer Konten-Tabelle)
Nun möchte ich die Istdaten pro Konto und Kostenstelle und Jahr auf den Jahreswert (Summe p.a.) verdichten. (Das ist ja nicht schwer)
Die so verdichteten Datensätze möchte ich nun in eine Plandaten-Tabelle schreiben und 12-teln, so dass ich aus dem einen verdichteten Datensatz 12 Datensätze mit gleiche Inhalten, aber unterschiedlichen Monaten (1 bis 12) in meiner Plandaten-Tabelle stehen habe.
Da ich das ganze flexibel benötige, also die Anzahl der Monate variieren (12, 18, 24, 36 ... Monate) können muss, möchte ich das mit einer While-Schleife in einer Prozedur lösen. Die Anzahl der Monate möchte ich später aus einer Steuerungstabelle holen.
Hier mein Ansatz für die Prozedur:
Code: Alles auswählen
Set @monat = 0
While @monat < 13 Do
Insert Into plandaten ( pd_ktonr, pd_kstnr, pd_beschreibung, pd_wert, pd_monat, pd_jahr)
SELECT istdaten.id_ktonr,
istdaten.id_kst_ksth,
konten.kto_bezeichnung,
SUM(istdaten.id_wert)/12,
@monat,
istdaten.id_jahr
FROM istdaten, konten where istdaten.id_ktonr = kto_nr
GROUP BY istdaten.id_ktonr, istdaten.id_kst_ksth
Set @monat = @monat + 1
End While;
Vielleicht sieht ja ein geübteres SQL-Auge meinen Anfängerfehler sofort. Schon jetzt danke für eure Hilfe!
Viele Grüße
Werner