2 Stimmen

MySQL Update-Abfrage

Ich brauche Hilfe bei diesem MySQL-Update

Ich habe drei Tabellen (siehe unten).

tbl1
id eid quantity
1 3      2
2 4      3

tbl2
tid eid qnty status type
 1  3    1      1         1
 2  3    0      1         0
 3  4    1      1         1
 4  4    0      1         0

tbl3
id tid type 
1  1   1
2  2   0
3  3   1
4  4   0

Ich brauche ein Sql-Update für:

X finden

Y finden

Dann Status in tbl2 auf 0 aktualisieren, wenn X - Y > 0

X = tbl1.menge - summe(tbl2.menge) where tbl1.eid = tbl2.eid AND type = 1

Mit anderen Worten:

X = tbl1.menge in dieser eid - summe(tbl2.menge) in dieser eid WHERE typ = 1

Somit ist X für eid 4 = 2 und X für eid 3 = 1

Y = SELECT COUNT(tbl3.id) FROM tbl3 WHERE tbl2.tid = tbl3.tid AND type = 0 GROUP BY tid

Somit ist tid 2 = 1 und tid 4 = 1

Status in tble2 auf 0 aktualisieren, wenn X - Y > 0

Das Endergebnis wird sein, dass der Status für tbl2.tid:4 auf 0 aktualisiert wird, weil 2 - 1 = 1

Ihr(e) Beitrag(e) wird/werden geschätzt.

0voto

Rivka Punkte 803

Ich kann es gerade nicht nachprüfen, bin mir also nicht 100%ig sicher, was die Syntax angeht, aber ich glaube, man kann so etwas machen:

tbl2 aktualisieren join tbl1 on tbl1.eid = tbl2.eid join tbl3 on tbl2.tid = tbl3 set status=0 wo tbl2.type=1 und tbl1.quantity - sum(tbl2.qnty) - (select count(tbl3.id) FROM tbl3 WHERE tbl2.tid = tbl3.tid AND type = 0 GROUP BY tid) > 0

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X