Eu tenho uma exibição conforme mostrado abaixo.A exibição está funcionando bem.Quando tento executar a exibição, recebo o seguinte erro.Qual pode ser o problema?
Incorrect syntax near the keyword 'Declare'
Consulta 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
Você não pode usar
declare
e nenhuma manipulação de código em exibição ( selecione a instrução APENAS no SQL Server, é claro).Veja mais detalhes
Use procedimento armazenado em vez de exibição
Você teria que mudar para
Espero que isto ajude
Com CTE?
Isso pressupõe que você obtenha uma linha de dólar e euro. Se você obtiver mais de um, adicione um TOP 1 ..ORDER BY: sua consulta original também está errada, então
Você pode fazer o produto cartesiano usando
CTE
como nossoCTE
seria apenas uma linha.