库表结构
DATE  NAME  NUMBER  OUT IN NOWNUMBER 
-------------------------------------
1号   A      23     5    9   27
1号   B      65     7    1   59
2号   A      27     8    6   25
2号   B      59     2    3   60
3号   A      25     11   7   21
3号   B      60     10   11  61
希望查询出来的结果:
NAME  NUMBER  OUTALL  INALL  NOWNUMBER
---------------------------------
A     23      24       22     21
B     65      19       15     61
{注:(1)结果中A的NUMBER:23是1号的NUMBER
     (2)结果中A的NOWNUMBER:21是3号的NOWNUMBER
      (3)结果中A的OUTALL是A的1、2、3号的OUT的和
      (4)结果中A的INALL是A的1、2、3号的IN的和
      (5)B的数据和A的类似关系。
请教:怎么用SQL查询?

解决方案 »

  1.   

    对以上加注:(6)原表中A的2号的NUMBER等于1号的NOWNUMBER,3号的NUMBER等于2号的NOWNUMBER。
      

  2.   

    确定只有1号2号3号吗?会不会有4号5号?
    如果有N号的话,一条SQL语句是不行的。
    NUMBER跟NOWNUMBER是一个递归关系。
      

  3.   

    这样试试!我没有测试过,裸写的。
    select NAME, (select top 1 NAME from tablename order by DATE ASC where NAME=t1.NAME) as NUMBER, sum(OUT) as OUTALL, sum(IN) as INALL, (select top 1 NEWNUMBER from tablename t1 order by DATE DESC where NAME=t1.NAME) as NOWNUMBER from tablename group by NAME