以下代码有效,但结果为空,有没有人帮我找到问题,在最终结果中将字符串转换为 int 似乎有问题
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
变量需要由 varchar 提供,然后根据字符获取 int
您的代码的问题在于您没有定义 varchar 变量的大小。如下所示更改您的代码,您将获得所需的输出。我已将 varchar 大小定义为 100,根据您的数据进行修改。
DECLARE @dp1 varchar(100)
DECLARE @dp2 varchar(100)
DECLARE @dp3 varchar(100)
DECLARE @dp4 varchar(100)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句