主表
主表ID,单号,日期子表
主表ID,子表ID,内容,描述生成一下格式:主表ID(A) ,单号,日期  A 子表ID,内容,描述
                                            A 子表ID,内容,描述
                                            A 子表ID,内容,描述
                                            A 子表ID,内容,描述
主表ID(B) ,单号,日期  B 子表ID,内容,描述
                                             B 子表ID,内容,描述
                                             B 子表ID,内容,描述

解决方案 »

  1.   

    建议楼主列出表结构,并提供测试数据以及基于这些测试数据的所对应正确结果。
       参考一下这个贴子的提问方式http://bbs.csdn.net/topics/320211382
       
       1. 你的 create table xxx .. 语句
       2. 你的 insert into xxx ... 语句
       3. 结果是什么样,(并给以简单的算法描述)
       4. 你用的数据库名称和版本(经常有人在MS SQL server版问 MySQL)
       
       这样想帮你的人可以直接搭建和你相同的环境,并在给出方案前进行测试,避免文字描述理解上的误差。
      

  2.   


    select case when SEQ=1 then 主表ID else '' end as 主表ID,
    case when SEQ=1 then 单号 else '' end as 单号,  
    case when SEQ=1 then 日期 else '' end as 日期, 
    子表ID,内容,描述
    from
    (select A.主表ID,A.单号,A.日期,B.子表ID,B.内容,B.描述,
    ROW_NUMBER() OVER (PARTITION BY A.主表ID ORDER BY B.子表ID) AS SEQ
    from 主表 A
    join 子表 B on A.主表ID=B.主表ID) as A
      

  3.   

    select aa.主表ID,aa.单号,aa.日期,bb.子表ID,bb.内容,bb.描述
    from 主表 aa
    left join 字表 bb on aa.主表ID=bb.主表ID
      

  4.   

    SELECT 
    *
    FROM
    主表
    JOIN 子表 ON 主表.主表ID=子表.主表ID
    你可以试试这个,虽然你的题目里的空格没有弄出来(因为会很麻烦),但这样会更简单而且也能满足你的要求的。