-
Nullwerte Problem bei UPDATE
Hallo,
bin schon etwas am verzweifeln dies hier ergibt immer:
[Nullwerte für Spalte oder Variable VAPREN nicht zulässig]
UPDATE VAVARI set VAPREA = VAPREN, VADLA = 20160310,
VAULAE = 'USER', VAPREN =
(select PREIS from
STAMM where VAARTN = STARTN and VAVAR = STVAR)
Where VAARTN in(select STARTN from STAMM where
VAARTN = STARTN and VAVAR = STVAR)
Kann mir jemand weiterhelfen ?
LG
-
der Preis wird nicht gefunden, das ergibt einen null wert
where exists(select feld from datei where --alle Bedingungen nochmal-- )
kann helfen
Robi
Das Notwendige steht über dem technisch machbaren.
(klingt komisch, funktioniert aber!)
-
...leider gleiches Ergebnis ...
-
Dann ist das Quellfeld wohl NULL und dein Zielfeld erlaubt keine NULL.
Mit "coalesce(Preis, 0)" oder "coalesce('Subselect...', 0)" kannst du das lösen.
-
@Fuerchau,
Hallo, habe anscheinend dasselbe Problem und versucht es wie beschrieben zu lösen, komme aber noch immer auf keinen grünen Zweig. Hier die Meldung sowie das Statement:
Nullwerte für Spalte oder Variable DLINTBEL nicht zulässig.
update rwlex998/wkf098p a set a.dlintbel =
(select coalesce(b.rhdrgnr, 0) from
testfgn/stgl006_98 b where
a.dldokid = b.dldokid and a.dlstatus = 'ARCHIV'
and a.dlintbel = 0 and b.rhdrgnr <> 0)
Kann mir geholfen werden?
Danke jedenfalls schon mal.
LG
Franz-Georg
-
Aber immer doch.
Ein "(select coalesce()...)" bringt nur dann etwas, wenn der Satz gefunden wird und der Feldinhalt NULL ist.
Ein "coalesce((select ...), 0)" bringt dann etwas, wenn der Select selber als Ergebnis NULL bringt.
Dabei ist es nun unabhängig ob kein Satz da ist oder der Feldinhalt als Ergbnis NULL bringt.
-
@Fuerchau,
jetzt steh ich glaub ich im sprichwörtlichen Wald und sehe ihn vor lauter Bäumen nicht mehr :-)
Ich müsste jetzt also ein coalesce((select...,0) setzen, aber was schreibe ich hinter das select?
LG
Franz-Georg
-
update rwlex998/wkf098p a set a.dlintbel =
(coalesce(select b.rhdrgnr from
testfgn/stgl006_98 b where
a.dldokid = b.dldokid and a.dlstatus = 'ARCHIV'
and a.dlintbel = 0 and b.rhdrgnr <> 0), 0)
so sollte es gehen
Gruß
Ronald
-
@Ronald
danke, aber jetzt bekomme ich natürlich die Meldung dass das Token B ungültig ist - bezogen auf b.rhdrgnr da diese Def. erst später kommt nehme ich mal an?
LG
Franz-Georg
-
Ein kleiner Klammerfehler:
update rwlex998/wkf098p a set a.dlintbel =
coalesce((select b.rhdrgnr from
testfgn/stgl006_98 b where
a.dldokid = b.dldokid and a.dlstatus = 'ARCHIV'
and a.dlintbel = 0 and b.rhdrgnr <> 0), 0)
Hier wurde der scalare Subselect nicht erkannt, da dieser immer in Klammern stehen muss.
-
@Fuerchau,
danke, aber jetzt erhalte ich die Meldung: Ergebnis der Anweisung enthält mehr als eine Zeile
LG
Franz-Georg
-
Die Aussage ist doch wohl eindeutig.
Woher soll SQL denn wissen, aus welcher Zeile du denn den Update für das Feld haben willst.
Du musst den Select schon so eingrenzen, dass er genau 1 Ergebnis bringt.
Dazu gibts mehrere Methoden:
select distinct ...<= ggf. unsicher, wenn mehr als 1 Wert vorkommen kann
select min(..)... <= gibt halt den kleinsten
select ... fetch first 1 rows only <= liefert den ersten
Zu letzterem: ggf. hilft hier noch ein order by um den 1. zu beeinflussen.
Similar Threads
-
By andreaspr@aon.at in forum IBM i Hauptforum
Antworten: 6
Letzter Beitrag: 01-12-15, 10:28
-
By JanItor in forum IBM i Hauptforum
Antworten: 10
Letzter Beitrag: 11-02-15, 15:13
-
By hartmuth in forum NEWSboard Programmierung
Antworten: 2
Letzter Beitrag: 02-05-14, 08:42
-
By Joe in forum IBM i Hauptforum
Antworten: 4
Letzter Beitrag: 15-04-03, 15:06
-
By Joe in forum IBM i Hauptforum
Antworten: 2
Letzter Beitrag: 01-04-03, 19:50
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- You may not post attachments
- You may not edit your posts
-
Foren-Regeln
|
Erweiterte Foren Suche
Google Foren Suche
Forum & Artikel Update eMail
AS/400 / IBM i
Server Expert Gruppen
Unternehmens IT
|
Kategorien online Artikel
- Big Data, Analytics, BI, MIS
- Cloud, Social Media, Devices
- DMS, Archivierung, Druck
- ERP + Add-ons, Business Software
- Hochverfügbarkeit
- Human Resources, Personal
- IBM Announcements
- IT-Karikaturen
- Leitartikel
- Load`n`go
- Messen, Veranstaltungen
- NEWSolutions Dossiers
- Programmierung
- Security
- Software Development + Change Mgmt.
- Solutions & Provider
- Speicher – Storage
- Strategische Berichte
- Systemmanagement
- Tools, Hot-Tips
Auf dem Laufenden bleiben
|
Bookmarks