Ну хорошо, попробую. Раз выводить надо только положительные результаты, то можно попробовать дописать условие отбора:
Код:
select sum(case when (sklad.flag=''0'') then sklad.kol else 0 end)- sum(case when(sklad.flag=''2'') then sklad.kol else 0 end), name, sum(case when (sklad.flag=''0'') then sklad.summa else 0 end)- sum(case when(sklad.flag=''2'') then sklad.summa else 0 end),shet,price
from sklad
WHERE (DATEBAY <= :D) and (KOL > 0) and (sum(case when (sklad.flag=''0'') then sklad.kol else 0 end)- sum(case when(sklad.flag=''2'') then sklad.kol else 0 end) > 0) and (sum(case when (sklad.flag=''0'') then sklad.summa else 0 end)- sum(case when(sklad.flag=''2'') then sklad.summa else 0 end) > 0)
group by NAME, shet, price
Вот такое чудовище родилось. Попробуйте.
ПС: Непонятно, почему у вас запрос проходит без ошибок, ведь после name должна стоять запятая, а ее нет.