有人可以帮助我吗?为什么我仍然会出现错误?将varchar转换为float时出错
我必须将p.menge(浮动)和p.wert(varchar)添加到一个浮动行。
p.wert拥有不同的值->
SELECT a.AdressNrADR,k.monat,k.Jahr,p.Id_kopf,a.name + ' '+ a.vorname as Name,p.Artikel, p.tag,CAST(CASE WHEN p.wert = '' THEN p.Menge
WHEN p.wert IS NULL THEN p.Menge ELSE (ISNULL(CASE WHEN p.wert = 'A' THEN '1' WHEN p.wert = 'B' THEN '0' WHEN p.wert = 'C' THEN '0' WHEN p.wert = 'D' THEN '0' ELSE p.wert END,0)) END AS FLOAT) AS Menge
FROM ( ( ( ZUS_Monatsreport_Kopf k
LEFT JOIN ZUS_Monatsreport_Pos p ON k.Id = p.Id_Kopf)
LEFT JOIN ADR_Adressen a ON k.Adresse = a.AdressNrADR)
LEFT JOIN ADR_GruppenLink gl ON a.AdressNrADR = gl.AdressNrADR)
LEFT JOIN ADR_Gruppen g ON gl.GruppeADR = g.GruppeADR
答案 0 :(得分:0)
SELECT a.AdressNrADR,k.monat,k.Jahr,p.Id_kopf,
a.name + ' '+ a.vorname as Name,p.Artikel, p.tag,
cast(CASE WHEN p.wert IS NULL or p.wert = '' THEN p.Menge
ELSE ISNULL(CASE
WHEN p.wert = 'A' THEN 1
WHEN p.wert = 'B' THEN 0
WHEN p.wert = 'C' THEN 0
WHEN p.wert = 'D' THEN 0
ELSE TRY_CONVERT(float, p.wert) END,0) as float) AS Menger
FROM ( ( ( ZUS_Monatsreport_Kopf k
LEFT JOIN ZUS_Monatsreport_Pos p ON k.Id = p.Id_Kopf)
LEFT JOIN ADR_Adressen a ON k.Adresse = a.AdressNrADR)
LEFT JOIN ADR_GruppenLink gl ON a.AdressNrADR = gl.AdressNrADR)
LEFT JOIN ADR_Gruppen g ON gl.GruppeADR = g.GruppeADR