Hallo Zusammen,
ich versuche mich gerade an einem Statement, mit dem ich mehrere Zeilen (hier im Beispiel 3 Zeilen) mit jeweil 3 Werten updaten möchte. Wenn ich das mit einzelnen
SQL-Statements mache, wird die Procedure sehr langsam.
Folgendes habe ich gefunden, bzw. auf meinen Fall umgebaut:
Delphi-Quellcode:
update as400 set
sequence = case
when concat(waaunr,'-',waaupo) ='408216-0' and oaagnr =10 then 1
when concat(waaunr,'-',waaupo) ='408217-0' and oaagnr =10 then 2
when concat(waaunr,'-',waaupo) ='408218-0' and oaagnr =10 then 3
end,
frozen = case
when concat(waaunr,'-',waaupo) ='408216-0' and oaagnr =10 then 1
when concat(waaunr,'-',waaupo) ='408217-0' and oaagnr =10 then 1
when concat(waaunr,'-',waaupo) ='408218-0' and oaagnr =10 then 0
end,
plan_date = case
when concat(waaunr,'-',waaupo) ='408216-0' and oaagnr =10 then '2019-07-05'
when concat(waaunr,'-',waaupo) ='408217-0' and oaagnr =10 then '2019-07-05'
when concat(waaunr,'-',waaupo) ='408218-0' and oaagnr =10 then '2019-07-06'
end
where concat(waaunr,'-',waaupo) in ('408216-0', '408217-0', '408218-0')
Aber leider habe ich das Problem, dass ich die Fehlermeldung "Column 'sequence' cannot be null" bekomme.
Wenn ich das richtig sehe, wird der Wert für die Spalten nicht erkannt.
Sieht jemand was ich falsch mache und kann mir jemand einen Tip geben?
Vielen Dank
Patrick