我的DBGRIDEH的显示的数据如下:(是一个表的数据,表名叫AAA)户主姓名 与户主关系  姓名   出生日期
 张三      户主      张三   2002-02-01
 张三      妻        王五   2002-02-02
 张三      长子      张小三 2007-02-15
 李四      户主      李四   2000-03-05
 李四      妻        李小四 2000-02-01我想实现在DBGRIDEH的显示如下:户主姓名 与户主关系  姓名   出生日期
 张三      户主      张三   2002-02-01
           妻        王五   2002-02-02
           长子      张小三 2007-02-15
 李四      户主      李四   2000-03-05
           妻        李小四 2000-02-01
请问怎么显示!谢谢!

解决方案 »

  1.   

    --我用SQL 2005 实现的,2000须用临时表!  Declare   @t   Table(户主姓名   varchar(50),与户主关系   varchar(50),姓名   Varchar(10),出生日期 datetime)   
      Insert   @t   Select   '张三','户主','张三' , '2002-02-01' 
      Union   all   select   '张三','妻','王五' , '2002-02-02'   
      Union   all   Select   '张三','长子','张小三' , '2007-02-15'
      Union   all   select   '李四','户主','李四' , '2000-03-05'  
      Union   all   Select   '李四','妻','李小四' , '2000-02-01'    
        
      --   查询   
      ;WITH   
      T   AS(   
      SELECT   
      sid   =   ROW_NUMBER()   OVER(PARTITION   BY   户主姓名   ORDER   BY   与户主关系),   
      *   
      FROM   @t   
      )  
     
      SELECT     
      Id   =   CASE   sid   WHEN   1   THEN   RTRIM(户主姓名)   ELSE   ''   END,   与户主关系,   姓名 ,出生日期  
      FROM   T
      

  2.   

    --以下是用2000实现的~
    --表   
      Declare   @t   Table(户主姓名   varchar(50),与户主关系   varchar(50),姓名   Varchar(10),出生日期 datetime)   
      Insert   @t   Select   '张三','户主','张三' , '2002-02-01' 
      Union   all   select   '张三','妻','王五' , '2002-02-02'   
      Union   all   Select   '张三','长子','张小三' , '2007-02-15'
      Union   all   select   '李四','户主','李四' , '2000-03-05'  
      Union   all   Select   '李四','妻','李小四' , '2000-02-01' 
        
      --   查询   
      SELECT   sid   =   IDENTITY(int,   1,   1),   *   INTO   #   
      FROM   @t  
     
      SELECT   
      Id   =   CASE   A.sid     
      WHEN   B.sid   THEN   RTRIM(A.户主姓名)   
      ELSE   ''   END,   
      A.与户主关系,   A.姓名,A.出生日期  
      FROM   #   A,   
      (SELECT   sid   =   MIN(sid),   户主姓名   FROM   #   GROUP   BY   户主姓名)   B   
      WHERE   A.户主姓名   =   B.户主姓名   
     -- ORDER   BY   B.sid,   A.sid   
        
      DROP   TABLE   #
      

  3.   

    没用过DBGRIDEH,不知道是否能通过设置来实现LZ所要的效果~
    期待高手做答~
      

  4.   

    我想问一下.用临时表.能不能在DBGRIDEH里将某一条数据删除掉?