rg-berlin
Goto Top

Division durch 0 erlauben

Hallo Leute,

ich muss in MS SQL 2 Felder Dividieren und das 2te Feld kann aber auch mal 0 sein, das ist auch richtig so. Wie kann ich nun verhindern das das Script an der Stelle mit einer Fehlermeldung abbricht, sondern diese ignoriert. Ist sicher einfach, aber ich bin da noch nicht so fit. Danke

Content-ID: 63552

Url: https://administrator.de/forum/division-durch-0-erlauben-63552.html

Ausgedruckt am: 22.04.2025 um 14:04 Uhr

wakko
wakko 11.07.2007 um 12:09:23 Uhr
Goto Top
Moin,

ich würde das über ein case abfragen, also etwa so:
select case feld2
when 0 then 0
else feld1 / feld2 end
as divison
hoffe das ist so halbwegs MS SQL-Syntax....

Gruß,
Henrik
AndreasHoster
AndreasHoster 11.07.2007 um 13:17:53 Uhr
Goto Top
Nicht ganz syntaktisch richtig.
select Ergebnis = case feld2 = 0 then 'Div by Zero' else feld1 / feld2 end from Tabelle
rg-berlin
rg-berlin 11.07.2007 um 13:20:31 Uhr
Goto Top
Ja danke, ein bischen haut es schon hin, aber ich hab da noch eine summe zu bilden.
Wenn ich die Summe weg lasse passt es schon.
Also es sieht so aus:

SELECT
SUM(BELEGP.Menge / ART._VPE )AS Menge

FROM V_Artikel_mitVPE AS ART , BELEGP , X_Zollnummern AS ZN
WHERE ART.Artikelnummer = BELEGP.Artikelnummer AND
ART._ZOLLNR = ZN.ZOLLNummer AND
(BELEGP.Belegtyp = 'R') AND
((BELEGP.Zeilentyp = 'A') OR(BELEGP.Zeilentyp = 'H'))


--das 'ART._VPE' ist der manchmal Nuller

mfg Ray
rg-berlin
rg-berlin 11.07.2007 um 16:40:19 Uhr
Goto Top
Danke ich glaub ich habs jetzt.

select
'Menge' =
SUM(case when ART._VPE = 0 then BELEGP.Menge + ART._VPE
else
BELEGP.Menge / ART._VPE
end)


FROM V_Artikel_mitVPE AS ART , BELEGP , X_Zollnummern AS ZN
WHERE ART.Artikelnummer = BELEGP.Artikelnummer AND
ART._ZOLLNR = ZN.ZOLLNummer AND
(BELEGP.Belegtyp = 'R') AND
((BELEGP.Zeilentyp = 'A') OR(BELEGP.Zeilentyp = 'H'))

mfg Ray