Forum

Sql Declare Hatası
 
Bildirimler
Hepsini Temizle

Sql Declare Hatası

4 Yazılar
3 Üyeler
0 Likes
1,553 Görüntüleme
(@Anonim)
Gönderiler: 0
Konu başlatıcı
 

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.

 
Gönderildi : 15/09/2011 20:53

(@mehmetguzel)
Gönderiler: 116
Estimable Member
 

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.

 
Gönderildi : 16/09/2011 13:32

(@selahattinsadoglu)
Gönderiler: 826
Prominent Member
 

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,

 

 
Gönderildi : 16/09/2011 16:55

(@Anonim)
Gönderiler: 0
Konu başlatıcı
 
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 GunlukDoviz
 
Cevabınız için Teşekkür Ederim Ben sorunumu yukarıda ki kod ile çözdüm
 
Gönderildi : 16/09/2011 19:07

Paylaş: