Ich habe jetzt ein Else eingebaut und es hat einen Teilerfolg gebracht:
Delphi-Quellcode:
update as400 set
sequence = case
when (concat(waaunr,'-',waaupo) ='408216-0' and oaagnr =20) then 1
when (concat(waaunr,'-',waaupo) ='408217-0' and oaagnr =20) then 2
when (concat(waaunr,'-',waaupo) ='408218-0' and oaagnr =20) then 3
else 0
end,
frozen = case
when (concat(waaunr,'-',waaupo) ='408216-0' and oaagnr =20) then 1
when (concat(waaunr,'-',waaupo) ='408217-0' and oaagnr =20) then 1
when (concat(waaunr,'-',waaupo) ='408218-0' and oaagnr =20) then 0
else 0
end,
plan_date = case
when (concat(waaunr,'-',waaupo) ='408216-0' and oaagnr =20) then '2019-07-05'
when (concat(waaunr,'-',waaupo) ='408217-0' and oaagnr =20) then '2019-07-05'
when (concat(waaunr,'-',waaupo) ='408218-0' and oaagnr =20) then '2019-07-06'
else '000-00-00'
end
where concat(waaunr,'-',waaupo) in ('408216-0', '408217-0', '408218-0')
Jetzt wird tatsächlich die Daten eingetragen, aber bei allen anderen Arbeitsgängen (nach 10 kommt 20, 30 usw) greift dann das ELSE.
das bedeutet, dass die vorhergehenden Daten, die unangetastet bleiben sollen, mit dem ELSE überschrieben werden...
Ich habe es in zwei Screenshots dargestellt...