我有一个如下所示的视图。视图运行良好。当我尝试运行视图时,出现以下错误。问题可能是什么?
Incorrect syntax near the keyword 'Declare'
SQL查询:
create View [dbo].StokMaliyet
AS
Declare @Dolar decimal(18,3),@Euro decimal(18,3)
set @Dolar=(select Dolar from GunlukDoviz
set @Euro=(select Euro from GunlukDoviz)
select Stok_Kodu,
(case
when dovtip='3' then net_maliyet
when dovtip='2' then ((net_maliyet)*@Dolar)/@Euro
When dovtip='0' then (net_maliyet)/@Euro
end ) as Maliyet
from ib_mlyt
您不能
declare
在视图中使用和任何代码操作(当然,只能在 SQL Server 中选择语句)。详情请见
使用存储过程而不是视图
你必须把它改成
希望这可以帮助
有 CTE?
这假设您从 Dolar 和 Euro 获得一行。如果您得到的不止一个,请添加一个 TOP 1 ..ORDER BY: 您的原始查询也是错误的
您可以使用笛卡尔乘积,
CTE
因为我们CTE
只有一行。