Hallo zusammen,
wenn ich folgendene Befehle ausführe
Select b.adressnr, b.belegnr, b.gesamt,b.datumme ,CAST(k.KDPauschvon AS DATE), CAST(k.KDGenehm AS DATE)
from belegpos b, kunden k
where b.adressnr = k.kundennr
and belegtyp = "V"
and belegart = "LI"
and not (wgr like "test%" or wgr="sens")
and datumme>=CAST(k.KDPauschvon AS DATE)
and datumme<=CAST(k.KDGenehm AS DATE)
order by belegnr;
bekomme ich diese Fehlermeldung:
SQL-Fehler in Schritt 1:
TA_SQL.SelectQuery: Overflow occurred during data type conversion.Conversion error from string "".
Select b.adressnr, b.belegnr, b.gesamt,b.datumme ,CAST(k.KDPauschvon AS DATE), CAST(k.KDGenehm AS DATE)
from belegpos b, kunden k
where b.adressnr = k.kundennr
and belegtyp = "V"
and belegart = "LI"
and not (wgr like "test%" or wgr="sens")
and datumme>=CAST(k.KDPauschvon AS DATE)
and datumme<=CAST(k.KDGenehm AS DATE)
order by belegnr
Füge ich nach "where b.adressnr = k.kundennr" noch den Befehl "and kundennr="10212" ein, läuft das ganze ohne Fehler durch. Die Felder KDPauschvon bzw. KDGenehm haben das Format [VAR]CHAR10 bzw. [VAR]CHAR 15. CAST innerhalb von Select um die Spalten nach den Regel einens Datums sortieren zu können.
Dier SQL Abfrage erfolg innerhalb des Warenwirtschaftssystem GDI mit der Datenbank Firebird 2.5.1.26351 (64-Bit) .
Gruß MiWi
Fehler Conversion error from string "".
Moderator: thorben.braun
Hallo Miw,
mache einen
Select ohne Join auf:
Select k.KDPauschvon, k.KDGenehm, k.kundennr
from kunden k
und suche den oder die Datensätze mit dem nicht zu konvertierenden Eintrag.
Denke der Cast geht wegen eines oder mehreren bestimmten Datensätze schief.
mache einen
Select ohne Join auf:
Select k.KDPauschvon, k.KDGenehm, k.kundennr
from kunden k
und suche den oder die Datensätze mit dem nicht zu konvertierenden Eintrag.
Denke der Cast geht wegen eines oder mehreren bestimmten Datensätze schief.
lg Roland Siegel
s-plus GmbH
schreiner-plus.de
s-plus GmbH
schreiner-plus.de
Die Fehlermeldung ist ja eindeutig:
... from String ""
D.h., eines der beiden Castfelder ist leer (nicht NULL) und enthält kein Datum.
Also such mal die Zeilen, die kein Datum haben.
Durch die weitere Einschränkung bist du an den fehlerhaaften Daten nicht vorbeigekommen, daher kein Fehler.
... from String ""
D.h., eines der beiden Castfelder ist leer (nicht NULL) und enthält kein Datum.
Also such mal die Zeilen, die kein Datum haben.
Durch die weitere Einschränkung bist du an den fehlerhaaften Daten nicht vorbeigekommen, daher kein Fehler.
Danke für die Antworten,
Fehler erkannt, die Datums Felder sind tatsächlich nicht alle gefüllt, da nicht alle Kunden diese Angaben benötigen. Werde jetzt nach einem eindeutigen Wert im Kundenstamm suchen bzw. einen neuen Eintrag anlegen.
Gruß MiWi
Fehler erkannt, die Datums Felder sind tatsächlich nicht alle gefüllt, da nicht alle Kunden diese Angaben benötigen. Werde jetzt nach einem eindeutigen Wert im Kundenstamm suchen bzw. einen neuen Eintrag anlegen.
Gruß MiWi
Einfacher wäre u.U.:
select ....
from
belegpos b
inner join kunden k
on b.adressnr = k.kundennr
and k.KDPauschvon > '' and k.KDGenehm > ''
where belegtyp = "V"
...
da die on-Klausel vor der Where-Klausel ausgewertet wird.
select ....
from
belegpos b
inner join kunden k
on b.adressnr = k.kundennr
and k.KDPauschvon > '' and k.KDGenehm > ''
where belegtyp = "V"
...
da die on-Klausel vor der Where-Klausel ausgewertet wird.