SQL Server da alan hesaplaması yapılamıyor.

Firebird ve Interbase veritabanları ve SQL komutlarıyla ilgli sorularınızı sorabilirsiniz. Delphi tarafındaki sorularınızı lütfen Programlama forumunda sorunuz.
Cevapla
Kullanıcı avatarı
efkan
Üye
Mesajlar: 155
Kayıt: 31 Oca 2004 07:47
Konum: Tekirdağ
İletişim:

SQL Server da alan hesaplaması yapılamıyor.

Mesaj gönderen efkan »

aciklama:

ARAMA kısmında Çok çeşitli arama yapmama rağmen soruma benzer bir şey bulamadım.Daha önce bu konu geçtiyse bilen arkadaşlar lütfen uyarsın.


selamlama :

öncelikle türkiyenin en çok rağbet gören Delphi forumuna sevgiler saygılar.Forumu açtığımda sorular karşısında şok oldum o kadar çok yeni başlı vardı ki :)

soru :


Sql Serverda hesaplama alanı yaptırıyorum.

Kod: Tümünü seç

select dbo.isletmealt.giren,dbo.isletmealt.cikan,SUM(dbo.isletmealt.giren - dbo.isletmealt.cikan) kalan from dbo.isletmealt;
burada

Kod: Tümünü seç

SUM(dbo.isletmealt.giren - dbo.isletmealt.cikan) AS kalan
şeklinde AS kelimesinide kullanarak denedim ancak aşağıdaki hata mesajını aldım :? çok garip..
Column 'dbo.isletmealt.giren' is invalid in the select list because it is not contained in an aggregate function and there is no
sanıyorum penceredeki alan yetmediğinden hata mesajı cümlesi yarım kalmış.
yardımcı olabilecek arkadaşların cevabını bekliyorum.
herkese iyi çalışmalar...
Bilgisayar Programcısı/Analyst ve Sistem Yöneticisi
csyasar
Üye
Mesajlar: 646
Kayıt: 25 Şub 2004 10:14
Konum: Tokat

Mesaj gönderen csyasar »

viewtopic.php?t=1691&highlight=sum :)

sum kullanırken select ifadesiyleilgili biraz problemin var... yukardaki linke göre düzenle.
Kullanıcı avatarı
efkan
Üye
Mesajlar: 155
Kayıt: 31 Oca 2004 07:47
Konum: Tekirdağ
İletişim:

Mesaj gönderen efkan »

Yasar Bey linkinize baktım teşekkürler.
group By :)
Bilgisayar Programcısı/Analyst ve Sistem Yöneticisi
Kullanıcı avatarı
efkan
Üye
Mesajlar: 155
Kayıt: 31 Oca 2004 07:47
Konum: Tekirdağ
İletişim:

Mesaj gönderen efkan »

Ne yazık ki beceremedim sanıyorum.Ben en iyisi kodları da yazayım size belki benim atladığımı siz görebilirsiniz.

Kod: Tümünü seç

select dbo.isletmealt.fid,dbo.isletmealt.partino,dbo.isletmealt.giren,dbo.isletmealt.cikan,SUM(dbo.isletmealt.giren-dbo.isletmealt.cikan) as dbo.isletmealt.kalan from dbo.isletmealt group by dbo.isletmealt.fid,dbo.isletmealt.partino HAVING dbo.isletmealt.kalan>'1'
yazdığımda
Invalid column name 'kalan'
hatasını alıyorum

kalan alanının önüne "dbo.isletmealt." eklediğimde ise normal olarak
Line 1 : incorrect syntax near '.'
hatası alıyorum.
zaman ayırıp inceleyebilirseniz teşekkür ederim.herkese iyi çalışmalar...
Bilgisayar Programcısı/Analyst ve Sistem Yöneticisi
Kullanıcı avatarı
mussimsek
Admin
Mesajlar: 7602
Kayıt: 10 Haz 2003 12:26
Konum: İstanbul
İletişim:

Mesaj gönderen mussimsek »

...AS KALAN...

şeklinde bir dene.

Kolay gelsin.
Kullanıcı avatarı
efkan
Üye
Mesajlar: 155
Kayıt: 31 Oca 2004 07:47
Konum: Tekirdağ
İletişim:

Mesaj gönderen efkan »

dediğiniz gibi her iki "dbo.isletmealt.kalan" ı sadece "kalan" yaptım. Mustafa Bey bu seferde
invalid column name 'kalan'
hatası alıyorum.Yaa ben nasıl takıldım burda onu anlamıyorum .Herşey normal tek satır bi sql cümlesi başka bişi yok.SQL Server bağlantılarımda gayet normal.ODBC üzerinden Query ile yazıyorum.
zamanınızı aldım kusura bakmayın herşey için tekrar teşekkürler :)
Bilgisayar Programcısı/Analyst ve Sistem Yöneticisi
Kullanıcı avatarı
naile
Admin
Mesajlar: 1873
Kayıt: 11 Haz 2003 10:11

Mesaj gönderen naile »

sizin tablonuzda kalan diye bir alan yok anladığım kadarı ile, siz isim veriyorsunuz. Bu durumda

Kod: Tümünü seç

SUM(dbo.isletmealt.giren-dbo.isletmealt.cikan) as dbo.isletmealt.kalan
değil

Kod: Tümünü seç

SUM(dbo.isletmealt.giren-dbo.isletmealt.cikan) as kalan
demeniz lazım. Tabi bu durumda HAVING de bu verdiğinizismi kullanamazsınız, sql server buna izin vermiyor.

Kod: Tümünü seç

 HAVING dbo.isletmealt.kalan>'1'
değil

Kod: Tümünü seç

 HAVING SUM(dbo.isletmealt.giren-dbo.isletmealt.cikan)>1
demeniz lazım.
Kullanıcı avatarı
efkan
Üye
Mesajlar: 155
Kayıt: 31 Oca 2004 07:47
Konum: Tekirdağ
İletişim:

Mesaj gönderen efkan »

merhabalar,
kısa bir süre sorunlu kodlarım ile ilgilenemiyordum ama sayenizde çözdüm. Sorun SUM işlemine tabi tuttuğum alanları ve group by ifadesinde yer almayan alanları Select ifadesinden sonra dayazmamdan kaynaklanıyormuş.

ilginiz için tekrar teşekkürler...
Bilgisayar Programcısı/Analyst ve Sistem Yöneticisi
Cevapla