2017-03-07 80 views
0

下面的代码的工作,但结果是空,是谁帮我找问题,似乎还有问题转换成字符串中的最终结果如何转换字符串中的存储过程来诠释

DECLARE @dp1 varchar 
DECLARE @dp2 varchar 
DECLARE @dp3 varchar 
DECLARE @dp4 varchar 

DECLARE @dpp1 int 
DECLARE @dpp2 int 
DECLARE @dpp3 int 
DECLARE @dpp4 int 


set @dp1 = 'Emkanat' 
set @dp2 = 'Masraf' 



if (@dp1= 'Emkanat') 
Begin 
set @dpp1= 8 
Select Emkanat*@dpp1 as val1 FROM Cardetail 
End 

if (@dp1= 'Tarahi') 
Begin 
set @dpp1= 8 
Select Tarahi*@dpp1 as val1 FROM Cardetail 
End 

if (@dp1= 'Sandogh') 
Begin 
set @dpp1= 8 
Select Sandogh*@dpp1 as val1 FROM Cardetail 
End 

if (@dp1= 'Masraf') 
Begin 
set @dpp1= 8 
Select Masraf*@dpp1 as val1 FROM Cardetail 
End 

if (@dp2= 'Emkanat') 
Begin 
set @dpp2= 7 
Select Emkanat*@dpp2 as val2 FROM Cardetail 
End 

if (@dp2= 'Tarahi') 
Begin 
set @dpp2= 7 
Select Tarahi*@dpp2 as val2 FROM Cardetail 
End 

if (@dp2= 'Sandogh') 
Begin 
set @dpp2= 7 
Select Sandogh*@dpp2 as val2 FROM Cardetail 
End 

if (@dp2= 'Masraf') 
Begin 
set @dpp2= 7 
Select Masraf*@dpp2 as val1 FROM Cardetail 
End 


SELECT 
Namecar, 
(Masraf*@dpp1)+(Sandogh*@dpp1)+(Tarahi*@dpp1)+(Emkanat*@dpp1)+(Masraf*@dpp2)+(Sandogh*@dpp2)+(Tarahi*@dpp2)+(Emkanat*@dpp2) 
as finalresult 
FROM Cardetail 

为int变量需要由varchar提供,然后根据字符获取int

+0

请更好地解释你的目标 –

回答

0

代码问题在于您没有定义varchar变量的大小。改变你的代码,如下所示,你会得到你需要的输出。我已经将varchar大小定义为100,根据您的数据修改相同的值。

DECLARE @dp1 varchar(100) 
DECLARE @dp2 varchar(100) 
DECLARE @dp3 varchar(100) 
DECLARE @dp4 varchar(100) 
相关问题