请问数据库分组查询的有关问题

请教数据库分组查询的问题
库中数据如下:
产品 标志 收入 支出 结余
A 是 200
A 否 5
A 否 2
A 否 13
B 是 50
B 否 3
B 否 2
B 否 5
查询标志为“是”的产品,查询结果如下:
产品 标志 收入 支出 结余
A 是 200 180 20
B 是 50 10 40

谢谢!



------解决思路----------------------
估计楼主的意思是:
select 
      产品,标志,
      sum(收入),sum(支出),sum(收入)-sum(支出) 
from 
     tb
group by
      产品,标志

------解决思路----------------------

create table zf
(产品 varchar(10),标志 varchar(10),收入 int,支出 int,结余 int)

insert into zf
  select 'A','是',200,null,null union all
  select 'A','否',null,5,null union all
  select 'A','否',null,2,null union all
  select 'A','否',null,13,null union all
  select 'B','是',50,null,null union all
  select 'B','否',null,3,null union all
  select 'B','否',null,2,null union all
  select 'B','否',null,5,null


select a.产品,
           a.标志,
           a.收入,
           isnull(b.支出,0) '支出',
           a.收入-isnull(b.支出,0) '结余'
from (select 产品,
                   标志,
                   sum(收入) '收入'
            from zf
            where 标志='是'
            group by 产品,标志) a
left join (select 产品,
                      sum(支出) '支出'
                 from zf 
                 where 标志<>'是'
                 group by 产品) b on a.产品=b.产品

/*
产品         标志         收入          支出          结余
---------- ---------- ----------- ----------- -----------
A          是          200         20          180
B          是          50          10          40

(2 row(s) affected)
*/

------解决思路----------------------
引用:
估计楼主的意思是:
select 
      产品,标志,
      sum(收入),sum(支出),sum(收入)-sum(支出) 
from 
     tb
group by
      产品,标志


应该是这个意思,只是把结果写反了。
------解决思路----------------------
。。。。。。好像在玩猜猜看額。。。。。。

当  [标志]  为  “否"  时的  [收入],和  [标志]  为  "是"  时的  [支出]  是不是要考虑一起计算进去呢?
如果也要一起计算,楼上的就是。

如果不考虑计算到一起,应该这么写吧。

select 
  t.产品, t1.标志,
  t1.收入, t2.支出, (t1.收入 - t2.支出) as 结余 
from
(
    select 产品 from tbl1 group by 产品
) as t
left join
(
    select 产品, 标志, sum(收入) as 收入  from tbl1 where 标志 = '是' group by 产品, 标志
) as t1
on t.产品 = t1.产品
left join
(
    select 产品, sum(支出) as 支出  from tbl1 where 标志 = '否' group by 产品
) as t2
on t.产品 = t2.产品