Please start any new threads on our new site at https://forums.sqlteam.com. We've got lots of great SQL Server experts to answer whatever question you can come up with.

 All Forums
 General SQL Server Forums
 New to SQL Server Programming
 Error converting data type varchar to numeric.

Author  Topic 

werhardt
Constraint Violating Yak Guru

270 Posts

Posted - 2007-10-05 : 10:50:34
I am having difficulty with my sql and I am not sure what do to. I am new to this. Any help you can give would be helpful.

Here is the statement that is giving me trouble. If I take this out of my Sql query everything runs fine.

CASE clm_att1
WHEN 'NG' THEN (clm_sppo)*(clio_fee04/100)
WHEN 'NA' THEN '0.00'
WHEN 'AF' THEN (clm_sppo)*(clio_fee04/100)*.65
ELSE ''
END as AccessFeeFinal,


Below is my full query.


SELECT
--clms_sku,
--clms_line,
--clm_prod,
clio_type,
clm.clm_id1,
clm.clm_rcvd,
CLM_DOUT,
clm_wkpct,
clm.clm_1a,
clm.clm_12a,
clm.clm_12b,
clm.clm_55d,
clm.clm_clir,
clm.clm_65a,
clm.clm_medb2,
clm.clm_tchg,
clm.clm_base,
clm.clm_stades,
clm.clm_meda4,

CLM_H30 =
Case
When CLM_H30 = 0.00 Then clm_sppo
else clm_H30
End,

clm_prod =
CASE
WHEN CLMS_sku = 'NEGO' THEN 'NEG'
WHEN CLMS_sku = '% OF CHGS' THEN 'NEG'
ELSE clm_prod
End,

"clm_nego" =
CASE
WHEN CLM_ATT1 = 'NA' THEN 0.00
WHEN CLM_ATT2 = 'NA' THEN 0.00
WHEN CLM_ATT3 = 'NA' THEN 0.00
WHEN CLM_ATT4 = 'NA' THEN 0.00
ELSE clm_nego
END,


"clm_sppo" =
CASE
WHEN CLM_ATT1 = 'NA' THEN 0.00
WHEN CLM_ATT2 = 'NA' THEN 0.00
WHEN CLM_ATT3 = 'NA' THEN 0.00
WHEN CLM_ATT4 = 'NA' THEN 0.00
ELSE clm_sppo
END,

clm_1e,
clm.CLM_ATT1 as Note,


CASE clm_att1
WHEN 'NG' THEN (clm_sppo)*(clio_fee04/100)
WHEN 'NA' THEN '0.00'
WHEN 'AF' THEN (clm_sppo)*(clio_fee04/100)*.65
ELSE ''
END as AccessFeeFinal,


CLM_ATT2,
CLM_ATT3,
clio_fee04 as "ACCESSFEEIMPACT",

"(clm_sppo/CLM_TCHG) * 100" =
CASE
WHEN CLM_ATT1 = 'NA' THEN 0.00
WHEN CLM_ATT2 = 'NA' THEN 0.00
WHEN CLM_ATT3 = 'NA' THEN 0.00
WHEN CLM_ATT4 = 'NA' THEN 0.00
ELSE (clm_sppo/CLM_TCHG) * 100
END,

clio_wrk1 as MAS90#



FROM dbo.clm clm Join
dbo.cli cli ON clm.clm_clir = cli.cli_id1 JOIN
dbo.clip clip ON cli.cli_id1 = clip.clip_id1 JOIN
dbo.clio clio ON cli.cli_id1 = clio.clio_id1
INNER JOIN dbo.clms clms ON clms.clms_id = clm.clm_id1


WHERE
(clip.clip_prd IN ('NEG', 'ADV')) AND
(clm_prod = 'ADV' OR clms_sku = 'NEGO' OR clms_sku = '% OF CHGS')AND
(CLM_STADES IN ('DONE','DUPO','DUPL'))and
clm_adjto = '' AND CLM_TCHG > 0. and
(clio.clio_type = 'AC')




harsh_athalye
Master Smack Fu Yak Hacker

5581 Posts

Posted - 2007-10-05 : 11:06:33
[code]CASE clm_att1
WHEN 'NG' THEN (clm_sppo)*(clio_fee04/100)
WHEN 'NA' THEN '0.00'
WHEN 'AF' THEN (clm_sppo)*(clio_fee04/100)*.65
ELSE 0
END as AccessFeeFinal[/code]

Harsh Athalye
India.
"The IMPOSSIBLE is often UNTRIED"
Go to Top of Page

werhardt
Constraint Violating Yak Guru

270 Posts

Posted - 2007-10-05 : 11:11:38
Thank you so much. What if I didn't want a zero in the else? Is there a way I can have it be blank on the report?
Go to Top of Page

harsh_athalye
Master Smack Fu Yak Hacker

5581 Posts

Posted - 2007-10-05 : 11:15:33
How can you have blank (space character) for a numeric expression? Since all of your other cases evaluate to numeric, you will have to put numeric value in ELSE part as well.

Harsh Athalye
India.
"The IMPOSSIBLE is often UNTRIED"
Go to Top of Page

werhardt
Constraint Violating Yak Guru

270 Posts

Posted - 2007-10-05 : 11:18:51
I won't be able to, you are right. I don't know why they even told me to do that.
Go to Top of Page
   

- Advertisement -