Hallo zusammen,
ich möchte in mysql zwei Tabellen abgleichen. Ich hab eine Tabelle Kassenbon und eine Tabelle Bestand. Sobald eine neue Rechnung eingetragen wird, sollen die Daten in Bestand aktualisiert werden. Ich habe es bereits mit trigger und stored procedures versucht, und erhalte jedes Mal das gleiche Ergebnis:
Die Datensätze aus Kassenbon werden immer so oft in Bestand geschrieben, wie viele zum letzten Mal angelegt wurden. Anbei mein Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
delimiter @@
create procedure abgleich()
begin
declare i int;
declare x int;
declare z int;
set i=0;
set x=(Select max(einkauf_id) as menge from kassenbon);
set z=(select count(einkauf_id) as anzahl from kassenbon where einkauf_id=(select max(einkauf_id) as m from kassenbon));
myloop: REPEAT
update bestand
set bestand.menge=bestand.menge+kassenbon.menge
where bestand.artikel=kassenbon.artikel_id and kassenbon.einkauf_id=x;
set i=i+1;
UNTIL i>=z
END REPEAT;
End;
@@
DELIMITER ;
Was mache ich falsch? Habe ich überhaupt den richtigen Lösungsansatz gewählt?
vielen Dank
wayne
modedit Editiert von GwenDragon: Titel ergänzt
Last edited: 2011-11-30 10:20:41 +0100 (CET)