Sayfayı Yazdır | Pencereyi Kapat

sqlde hesaplama

Nereden Yazdırıldığı: ERP Nedir? | Türkiye'nin ERP Forum Platformu
Kategori: SQL
Forum Adı: SQL Veri Tabanı İşlemleri
Forum Tanımlaması: Table,View,Trigger,SELECT,UPDATE,INSERT...
URL: http://www.erpne.org/forum_posts.asp?TID=1029
Tarih: 23 Kasım 2024 Saat 09:53
Program Versiyonu: Web Wiz Forums 11.10 - http://www.webwizforums.com


Konu: sqlde hesaplama
Mesajı Yazan: burakerdemir
Konu: sqlde hesaplama
Mesaj Tarihi: 22 Temmuz 2008 Saat 12:07
Merhaba Arkadaslar,
sqlde rahatça view hazirliyabiliyorum ama hesaplama nasil yapabilirim bilmiyorum. anlik satislari görmek için bir view hazirladim. onunla excel pivot table ile verileri çekiyorum. ama degisik döviz türü olan satislari tek bir döviz türüne dönüstürmek için viewde nasil bir hesaplama yapabilirim?
viewde FATUIRS, CASABIT ve DOVIZ table'larini ekledim. burda amacim euro ile olan satislarin dolar karsiliklarini bulmak. çok basit bir cümle yazdim ama mantik olarakda çalismayacagini da bilmiyorum. ama deneme yanilma yöntemiyle bulmaya çalisiyorum.
cümle söyleydi;
(CASE TBLFATUIRS.DOVIZTIP WHEN '1' THEN TBLFATUIRS.DOVIZTUT WHEN '2' THEN TBLFATUIRS.DOVIZTUT * DOVIZ.DOV_SATIS END)
bu dolarida bulmuyor ama hesaplama mantigini bulmaya çalisiyorum. yardimlariniz için simdiden tesekkürler
 


-------------
Burak Erdemir



Cevaplar:
Mesajı Yazan: mbaykan
Mesaj Tarihi: 22 Temmuz 2008 Saat 12:16
yazim hatasi var gibi geliyor dogrusu,
(CASE WHEN TBLFATUIRS.DOVIZTIP='1' THEN TBLFATUIRS.DOVIZTUT WHEN TBLFATUIRS.DOVIZTIP='2' THEN TBLFATUIRS.DOVIZTUT * DOVIZ.DOV_SATIS END)
seklinde olmali.



-------------
Mehmet Baykan


Mesajı Yazan: burakerdemir
Mesaj Tarihi: 22 Temmuz 2008 Saat 12:22
be yazdigim örnegi netsis'in kendi bir view'inden almistim. sizin yaptiginiz gibi düzenledim. aldigim hata Invalid column name 'DOLARTUTAR'



-------------
Burak Erdemir


Mesajı Yazan: mbaykan
Mesaj Tarihi: 22 Temmuz 2008 Saat 12:26
ben NETSIS veritabaninda söyle bir view olustudum öncelikle

CREATE VIEW [dbo].[MV_DVZKUR] AS
SELECT     dbo.DOVIZ.TARIH,dbo.KUR.BIRIM,
SUM(case WHEN LEFT(dbo.KUR.ISIM,3)='USD' THEN DOV_ALIS ELSE 0 END) AS USD_AL,
SUM(CASE WHEN LEFT(dbo.KUR.ISIM,3)='EUR' THEN DOV_ALIS ELSE 0 END) AS EURO_AL,
SUM(case WHEN LEFT(dbo.KUR.ISIM,3)='USD' THEN DOV_SATIS ELSE 0 END) AS USD_SAT,
SUM(CASE WHEN LEFT(dbo.KUR.ISIM,3)='EUR' THEN DOV_SATIS ELSE 0 END) AS EURO_SAT

FROM         dbo.DOVIZ INNER JOIN
                      dbo.KUR ON dbo.DOVIZ.SIRA = dbo.KUR.SIRA and dbo.DOVIZ.TARIH > '2001-12-31'
AND LEFT(dbo.KUR.ISIM,3) IN ('USD','EUR')

GROUP BY TARIH,BIRIM

bu view'i istedigim tablolara/view'lar TARIH sütunu ile baglayarak kullaniyorum
buradaki sütunlarda USD_AL, USD_SAT ve EUR_AL, EUR_SAT sütunlarini kullaniyorum


-------------
Mehmet Baykan


Mesajı Yazan: burakerdemir
Mesaj Tarihi: 22 Temmuz 2008 Saat 12:34
Tesekkürler Mehmet Bey,çok yardimci olacak bu view. peki ben bunda euro/dolar paritesini nasil hesapliyabilirim?



-------------
Burak Erdemir


Mesajı Yazan: mbaykan
Mesaj Tarihi: 22 Temmuz 2008 Saat 12:38
SELECT A.TARIH,DOVIZTIP,DOVIZTUT,CASE WHEN DOVIZTIP='1' THEN DOVIZTUT WHEN DOVIZTIP='7' THEN
DOVIZTUT*(EURO_AL/USD_AL) END AS USD_TUTAR
FROM TBLFATUIRS A,NETSIS..MV_DVZKUR B
WHERE A.TARIH=B.TARIH

yukarida '7' olan bizde EURO'ya karsilik geliyor sizde farkli bir deger olabilir, '1' ise USD'ye
kolay gelsin


-------------
Mehmet Baykan


Mesajı Yazan: Conari
Mesaj Tarihi: 22 Temmuz 2008 Saat 15:47
Bende söyle bir fonksiyon yazmistim. Dolara göre diger dövizlerin paritesi
USD bizdeki karsiligi =2 dir.Kullanimi

dbo.parite('2008-07-22',3) //3 Sek oldugu için dolar sek paritesidir.

siz kullanirken dbo.parite(sthar_tarih,sthar_dövtip)*sthar_gcmik
olarak kullanabilirsiniz.
CREATE function [dbo].[parite](@tar smalldatetime,@Doviz int) returns decimal(28,8) as

begin

declare @USDkur decimal(28,8)

declare @Othkur decimal(28,8)

declare @parite decimal(28,8)

set @USDkur=(select top 1 dov_alis from netsis..doviz

where sira= 2

and tarih <= @tar

ORDER BY TARIH DESC)

set @Othkur=(select top 1 dov_alis from netsis..doviz

where sira= @Doviz

and tarih <= @tar

ORDER BY TARIH DESC)

set @parite=round((@USDkur/@Othkur),5)

return (@parite)

end



-------------
Netsisden vazgeçemiyorum. Beni engelliyor..


Mesajı Yazan: bluewin
Mesaj Tarihi: 28 Temmuz 2008 Saat 00:32
merhabalar ben bursada oturuyorum ve netsis kullanmaya  calisiyorum :) yaninda sql le sorgulama yapmaya calisiyorum .Fakat henüz bu konularda  yeniyim ,isin özü  birebir ders verecek sql bilgisi olan (ücretli yada ALLAH rizasi icin ) arkadaslar dan yardimlarini istiyorum lütfen yardimci olun ALLAH kimseyi zorda birakmasin  .zordayim ve yardima  son derece  acigim
saygilarimla .koray_akcay_23@hotmail.com


Mesajı Yazan: Conari
Mesaj Tarihi: 28 Temmuz 2008 Saat 08:44

Arkadasim Allah kimseyi zorda birakmasin(Amin). Istanbul'dayim,siteden elimden geldigimce yardimci olmaya çalisirim.



-------------
Netsisden vazgeçemiyorum. Beni engelliyor..



Sayfayı Yazdır | Pencereyi Kapat

Forum Software by Web Wiz Forums® version 11.10 - http://www.webwizforums.com
Copyright ©2001-2017 Web Wiz Ltd. - https://www.webwiz.net