在数据库中存在着子父级的列,比如:系列分为风,雨,雅典,而风又有子级:F01、F02等。如果统计系列为风的数量时,则F01、F02也应该包括在内,SQL语句怎样写????
select * from sale where series in (select series from base where series like '%风%') or series like '%风%'

解决方案 »

  1.   

    select a.* from sale a,series b where a.series=b.series and b.series like :param;
      

  2.   

    风,F01,F02都应包括在内了,系列既风,又有F01和F02
      

  3.   

    你应该建立系列结构表或者编码有规律,否则不可能做出来的。
    如系列结构表XLB
    父系列FS,儿系列SS
    则你统计如下:
    select count(*) from sale where series in
    (select distinct SS from XLB
     connect by Prior SS=FS
     start with FS='风')
    or series = '风';上面的方法在Oracle中可以,其它数据库可以类似写出.
      

  4.   

    数据库 base字段为id、pra_id、mc
    id    pra_id  mc
    1      -1     风
    2       1     F01
    3       1     F02
      

  5.   

    能不能说明一下:connect by prior 和start with 的意思吗
      

  6.   

    我用的interbase数据库呀,好象没有connect by prior呢,只有start with