Forum
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
Arkadaşlar böyle bir viewım var view sağlıklı çalışıyor
fakat
Incorrect syntax near the keyword 'Declare' hatası veriyor
bu hatayı nasıl düzeltebilirim.
View içerisinde değişken tanımı(declare) yapamazsınız. Değişken tanımlarına ihtiyacınız varsa view yerine Stored Procedure kullanabilirsiniz.
Merhaba,
Kodunuzu aşağıdaki gibi denermisiniz.
create View [dbo].StokMaliyet
AS
select Stok_Kodu,
(case
when dovtip='3' then net_maliyet
when dovtip='2' then ((net_maliyet)*(select top (1) Dolar from GunlukDoviz))/(select top (1) Euro from GunlukDoviz)
When dovtip='0' then (net_maliyet)/(select top (1) Euro from GunlukDoviz)
end ) as Maliyet
from ib_mlyt
2.olarak bunuda deneyebilirsiniz.
create View [dbo].StokMaliyet
AS
WITH
Dolar AS (select Dolar from GunlukDoviz),
Euro AS (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
CROSS JOIN
Dolar
CROSS JOIN
Euro
GO
Saygılar,
select stok_kodu, casewhen dovtip='3' then net_maliyet
when dovtip='2' then ((net_maliyet) * Dolar) / Euro
when dovtip='0' then (net_maliyet) / Euroend as maliyetfrom ib_mlytcross join GunlukDovizCevabınız için Teşekkür Ederim Ben sorunumu yukarıda ki kod ile çözdüm