NULL проблем с MSSQL
0 отговора
0 прегледа
NULL проблем с MSSQL
Здравейте, имам следната таблица:
Kod1 Kod2 Kod3 Value1 Value2
1 1 null 20 0
2 1 null 20 100
1 2 1.5 40 150
2 2 null 40 0
2 2 9.1 40 150
2 2 9.1 20 150
Трябват ми броя и сумата от поле Value2 групирани по полета Kod1, Kod2 и Kod3 в зависимост от стойността на поле Value1 (20 или 40), т.е. :
kod1 kod2 kod3 sum20 broi20 sum40 broi40
-------------------------------------------------------------------------------------
1 1 null 0 1 0 0
1 2 1.5 0 0 150 1
2 1 null 100 1 0 0
2 2 null 0 0 0 1
2 2 9.1 150 1 150 1
Справката:
Select kod1, kod2, kod3,
(select sum(value2) from table t1 where t1.value=20 and t1.kod1=t.kod1 and t1.kod2=t.kod2 and t1.kod3=t.kod3) as sum20,
(select count(value2) from table t2 where t2.value=20 and t2.kod1=t.kod1 and t2.kod2=t.kod2 and t2.kod3=t.kod3) as broi20,
(select sum(value2) from table t3 where t3.value=40 and t3.kod1=t.kod1 and t3.kod2=t.kod2 and t3.kod3=t.kod3) as sum40,
(select count(value2) from table t4 where t4.value=40 and t4.kod1=t.kod1 and t4.kod2=t.kod2 and t4.kod3=t.kod3) as broi40
from table t
group by kod1, kod2, kod3
не работи, тъй като в поле Kod3 има стойности NULL... :( Имате ли идея как би трябвало да преобразувам справката?
Благодаря предварително...
Kod1 Kod2 Kod3 Value1 Value2
1 1 null 20 0
2 1 null 20 100
1 2 1.5 40 150
2 2 null 40 0
2 2 9.1 40 150
2 2 9.1 20 150
Трябват ми броя и сумата от поле Value2 групирани по полета Kod1, Kod2 и Kod3 в зависимост от стойността на поле Value1 (20 или 40), т.е. :
kod1 kod2 kod3 sum20 broi20 sum40 broi40
-------------------------------------------------------------------------------------
1 1 null 0 1 0 0
1 2 1.5 0 0 150 1
2 1 null 100 1 0 0
2 2 null 0 0 0 1
2 2 9.1 150 1 150 1
Справката:
Select kod1, kod2, kod3,
(select sum(value2) from table t1 where t1.value=20 and t1.kod1=t.kod1 and t1.kod2=t.kod2 and t1.kod3=t.kod3) as sum20,
(select count(value2) from table t2 where t2.value=20 and t2.kod1=t.kod1 and t2.kod2=t.kod2 and t2.kod3=t.kod3) as broi20,
(select sum(value2) from table t3 where t3.value=40 and t3.kod1=t.kod1 and t3.kod2=t.kod2 and t3.kod3=t.kod3) as sum40,
(select count(value2) from table t4 where t4.value=40 and t4.kod1=t.kod1 and t4.kod2=t.kod2 and t4.kod3=t.kod3) as broi40
from table t
group by kod1, kod2, kod3
не работи, тъй като в поле Kod3 има стойности NULL... :( Имате ли идея как би трябвало да преобразувам справката?
Благодаря предварително...