2017-01-03 2 views
0

ich die folgende Abfrage ausführenFehler erhalten SQL Server-Unterabfrage hat mehr als 1 Wert zurückgegeben. Dies ist nicht zulässig, wenn die Unterabfrage folgt =, = <, <= , >,> =

CREATE TRIGGER ubahjumlahupah ON tbl_pkrjbhn 
AFTER UPDATE 
AS 
UPDATE tbl_hitash SET 
jumlah_upah = (SELECT (tbl_pkrjbhn.harga_satuan*tbl_hitash.upah_hitash) 
       FROM tbl_hitash, tbl_pkrjbhn 
       WHERE tbl_hitash.id_pkrjbhn = tbl_pkrjbhn.id_pkrjbhn) 
FROM tbl_hitash 

aber ich bekomme Fehler :(

+1

Vielen Dank für den Bericht über den aktuellen Status Ihres Projekts. Gab es eine * Frage *? – spencer7593

Antwort

0

Das Problem ist klar: Ihr SELECT Ergebnis kehrt mehr als ein Wert, so dass die Abfrageergebnisse in:

CREATE ... 
...  
UPDATE ... SET 
jumlah_upah = (more than one value) 

Sie müssen also der SELECT Befehl einen einzelnen Wert stellen Sie sicher zurück, so dass es zu denzugeordnet werden kannvariabel.

+0

Ja, aber ich bin mir nicht sicher, ob es möglich ist, _how_ zu kennen, um basierend auf den Informationen im OP einen einzelnen Datensatz zu erhalten. –

+0

@TimBiegeleisen stimmte zu, also konzentrierte ich mich darauf, warum dieser Fehler passiert. – fedorqui

+1

Wir können auch bemerken, dass ohne eine WHERE-Klausel in der UPDATE-Anweisung * jede * Zeile in der Tabelle aktualisiert wird. Abgesehen davon, wie beantwortet das die Frage, die das OP gestellt hat? Gab es eine Frage? – spencer7593

Verwandte Themen