Inventar Tabelle:MySQL Trigger-Wert von vorherigen Zeile mit demselben Spaltenname
Inventar Geschichte Tabelle:
Die Abfrage:
INSERT INTO inventory_history (SKU, Quantity, timestamp)
SELECT SKU, Quantity, modifiedtime FROM inventory WHERE modifiedtime BETWEEN '2016-12-25 00:00:00' AND '2016-12-26 00:00:00';
der Auslöser :
CREATE TRIGGER `sold_diff` BEFORE INSERT ON `inventory_history`
FOR EACH ROW begin
declare prev_quantity int(11) default 0;
declare prev_sku varchar(255) default null;
select sku
into prev_sku
from inventory_history
where prev_sku = NEW.sku
order by id desc
limit 1;
select quantity
into prev_quantity
from inventory_history
order by id desc
limit 1;
set NEW.sold = prev_quantity
;
end
Das Ergebnis:
Nun, wie es Set-up ist es prev_quantity
aus der vorherigen Reihe nehmen und sie in die sold
Spalte setzen.
Ich kann nicht einen Weg finden, zu binden SKU
mit prev_quantity
, so dass es mir den vorherige Menge Wert aus der entsprechenden Artikelnummer geben.
Gewünschtes Ergebnis:
Ich habe mit einer Vielzahl von verschiedenen WHERE
Klauseln über die beiden erklärt verwirrte, aber nichts funktioniert richtig .. so ich denke, dies ist nicht der richtige Weg nehmen.
Wie kann dies erreicht werden?
Erzähl uns über 4, 23, 57, & 58 – Strawberry
das ist nur ich tue Tests auf meinem localhost und Löschen von Spalten, damit ich meine Abfrage erneut versuchen kann, das ist, warum sie so komisch sind. Normalerweise wäre es nur ein normales Autoinkrement. – bbruman
Wenn ich es wäre, würde ich von vorn anfangen, mit einem richtigen MCVE und einem gewünschten Ergebnis - also nichts davon auslösen Geschäft; das kann später kommen, sobald Sie eine funktionierende Anfrage haben. – Strawberry