主表
主表ID,单号,日期子表
主表ID,子表ID,内容,描述生成一下格式:主表ID(A) ,单号,日期 A 子表ID,内容,描述
A 子表ID,内容,描述
A 子表ID,内容,描述
A 子表ID,内容,描述
主表ID(B) ,单号,日期 B 子表ID,内容,描述
B 子表ID,内容,描述
B 子表ID,内容,描述
主表ID,单号,日期子表
主表ID,子表ID,内容,描述生成一下格式:主表ID(A) ,单号,日期 A 子表ID,内容,描述
A 子表ID,内容,描述
A 子表ID,内容,描述
A 子表ID,内容,描述
主表ID(B) ,单号,日期 B 子表ID,内容,描述
B 子表ID,内容,描述
B 子表ID,内容,描述
参考一下这个贴子的提问方式http://bbs.csdn.net/topics/320211382
1. 你的 create table xxx .. 语句
2. 你的 insert into xxx ... 语句
3. 结果是什么样,(并给以简单的算法描述)
4. 你用的数据库名称和版本(经常有人在MS SQL server版问 MySQL)
这样想帮你的人可以直接搭建和你相同的环境,并在给出方案前进行测试,避免文字描述理解上的误差。
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
from 主表 aa
left join 字表 bb on aa.主表ID=bb.主表ID
*
FROM
主表
JOIN 子表 ON 主表.主表ID=子表.主表ID
你可以试试这个,虽然你的题目里的空格没有弄出来(因为会很麻烦),但这样会更简单而且也能满足你的要求的。