主表:
供电仪        类型      开始里程    结束里程
G01             T01           2                  4
G02             T02           0                  10设备编号     类型     里程
BH01          T01       1   
BH02          T01       2
BH03          T01       3
BH04          T01       4
BH05          T01       5
BH06          T02       1
BH07          T02       2
想得到如下数据,SQL语句如何写:
供电仪       类型       开始里程      结束里程      供电设备数
G01             T01             2                 4                      3
G02             T02             0                 10                    2

解决方案 »

  1.   

    加个子查询就好了
    (select count(1) from b where b.类型=a.类型)
      

  2.   

    (select count(1) from b where b.类型=a.类型 and b.里程 between a.开始里程 and a.结束里程)
      

  3.   

    select 主表.*,B.S FROM 主表,(SELECT 类型,count(*) as S FROM 从表 group by 类型) AS B
    WHERE 主表.类型=B.类型
    如果发现少主表数据,可以改成左连接或右连接的方式
      

  4.   


    select  a.供电仪   ,a.类型     ,a. 开始里程   ,a. 结束里程,count(b.里程) from 主表a,从表b where b.类型=a.类型 and b.里程 between a.开始里程 and a.结束里程
    group by a.供电仪   ,a.类型     ,a. 开始里程   ,a. 结束里程