create  proc proGet (@infoID int)
as
begin
select 1 flag ,C.Id,C.Title ,c.VolumeID from  Chapter C join Volume V 
on c.InfoID=V.InfoID and c.VolumeID=V.VolumeID and c.InfoID=@infoID and A.VolumeID<>0
union all
select 2 flag , id,title ,VolumeID from Chapter 
where InfoID=@infoID and VolumeID=0 
and not exists (
select 1 from  Chapter C join Volume V 
on c.InfoID=V.InfoID and c.VolumeID=V.VolumeID and c.InfoID=@infoID and A.VolumeID<>0
) order by VolumeID,[id]end
go说明 : 
没有记录表示没要显示的信息
flag =1 表示有卷
flag=2 表示有直属章节。