本帖最后由 byzhiwenli 于 2010-08-18 21:43:01 编辑

解决方案 »

  1.   

    只能说楼主的表设计很不合理名称(c1) 序号(c2) 日期(c3) 期初收入(c4) 期末收入(c5) 既然收入分期初收入和期末收入
    就设计为 
    名称(c1) 序号(c2) 日期(c3) 收入类型(成) 收入额(c5) 
    玉米 1 20100810 期初 100   
    小麦 2 20100810 期末 120
    玉米 1 20100811 期初 110
    小麦 2 20100811 期末 150这样在用行转列统计就规范多了
      

  2.   

    SELECT a1.c1, a1.c2, a1.c4, b1.c5, a1.c4 + b1.c5 SUM
      FROM (SELECT a.*
              FROM a, (SELECT c2, MIN(c3) min_c3 FROM a GROUP BY c2) b
             WHERE a.c2 = b.c2 AND
                   a.c3 = b.min_c3) a1,
           (SELECT a.*
              FROM a, (SELECT c2, MAX(c3) max_c3 FROM a GROUP BY c2) b
             WHERE a.c2 = b.c2 AND
                   a.c3 = b.max_c3) b1
     WHERE a1.c2 = b1.c2;