Konuyu görüntüle
IUCODERS FORUM > Programlama > Veritabanları > Warning: Null value is eliminated by an aggregate or other SET operation
Yazar
sevecen


avatar
adana istanbul
Kayıt: 08.02.2006
27.05.2009-11:36 #60423
"Null value is eliminated by an aggregate or other SET operation."
warning olmasına rağmen procedure işlevlerini gerçekleştirmiyor.

1. coalesce denedim,
2. isnull 0 denedim,
3. 'Set ANSI_WARNINGS off' yazdım olmadı.

bu arada procedure ü açıklayayım. @TB adında bir sanal tabloya verileri atıyor.
daha sonra bazı kolonların toplamlarını seçiyor.
select kolon1, kolon2, SUM(kolon3), ...
from @TB
group by kolon1, kolon2

yardımlarınızı bekliyorum.






bize ruyalarimizin degil uyanikligimizin tabiri gerek (Alinti)





Yazar
aliprinter


avatar
İstanbul
Kayıt: 12.02.2006
27.05.2009-22:21 #60462
Table variable olarak oluşturduğun tablodaki alanları kullanarak bir aggregate operasyonu yaptığın için ve bu operasyonda bir kısmı ya da tamamı null değerler içeren alan(lar) kullandığın için null değer içeren kayıtları dikkate almıyor ve uyarı veriyor. Zaten buraya kadar herşey açık. Ancak anlamadığım nokta ISNULL'ın işe yaramamış olması. Verdiğin örneğe göre yine de şöyle birşeyler yazayım.
select kolon1, kolon2, SUM(ISNULL(kolon3, 0)), SUM(ISNULL(kolon4, 0)) ...
from @TB 
group by kolon1, kolon2 


Eğer null değer içeren kayıtları tamamen yok saymak problem olmazsa aşağıdaki gibi de deneyebilirsin fakat bu durumda kolon3 ya da kolon4'ten biri dolu biri null olsa yine de bütün kaydı eleyecektir.
select kolon1, kolon2, SUM(kolon3), SUM(kolon4) ...
from @TB 
where kolon3 IS NOT NULL AND kolon4 IS NOT NULL
group by kolon1, kolon2 


Son çözüm olarak aklıma yine bir önceki gibi WHERE ifadesinde ..IS NOT NULL kullanarak her aggregate operasyonu için ayrı sorgu yapmak geliyor ancak ISNULL çalışması lazım ya. thinking





Del.icio.us
Digg
Facebook
Furl
Google
Blink
Simpy
Spurl
Y! MyWeb