Mysql update mit Subquery returns more than 1 row

Hoi Profis ,

ich brauch mal eure hilfe zu :

PHP:
UPDATE fertig SET anzahl_neu = ((select anzahl_gesamt from heute) - (select anzahl_gesamt from gestern) )

jetzt kommt aber
Code:
 #1242 - Subquery returns more than 1 row


ich möchte die daten von gestern minus die daten von heute nehmen
und diese in neu speichern

sollte eigentlich ganz einfach seien oder :confused::confused:

Das SELECT mehr als eine Ergebniszeile liefert. weis ich !

besten dank allen helfern
 
Hi

Besser wäre es wohl - wenn du eine mathematische Operation (in diesem Falle eine Subtraktion) durchführen willst - mittels eines SELECT erst die Anzahl der Zeilen zählen lässt - so bekommst du einen einzeiligen Wert. Das gleiche machst du auch für den zweiten Datensatz, subtrahierst das ganze und schreibst den Wert normal zurück.

Details bietet die mysql-Dokumentation.
 
Hoi Profis ,

ich brauch mal eure hilfe zu :

PHP:
UPDATE fertig SET anzahl_neu = ((select anzahl_gesamt from heute) - (select anzahl_gesamt from gestern) )

jetzt kommt aber
Code:
 #1242 - Subquery returns more than 1 row


ich möchte die daten von gestern minus die daten von heute nehmen
und diese in neu speichern

sollte eigentlich ganz einfach seien oder :confused::confused:

Das SELECT mehr als eine Ergebniszeile liefert. weis ich !

besten dank allen helfern

- Hallo,

es gibt mehr als einen Wert im Attribut "Anzahl_gesamt" in der Tabelle "Heute" oder "Gestern". (BTW ein selten dämliches Datenmodel). Wenn du es so lösen möchtest, musst du eine Aggregatsfunktion benutzen (sum) :

Code:
UPDATE fertig SET anzahl_neu = ((select sum(anzahl_gesamt) from heute) - (select sum(anzahl_gesamt) from gestern) )

- Ob dies aber dein gwünschtes Resultat ist, weiss ich auch nicht, dazu müsstest du mehr Informationen liefern


Gruss
 
Zurück