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.
|