sql 用到了case when
select f.*, ( case f.UsedFlag when 1 then d.Name when 2 then w.Name when 3 then e.Name else '' end ) as Owner, b.Name as BuildName, p.Name as FlatTpName, u.Name as UseTpNamefrom LFlat fleft outer join LBuilding b on b.ListID=f.BuildingIDleft outer join LFlatTp p on p.ListID=f.FlatTpIDleft outer join LUseTp u on u.ListID=f.UseTpIDleft join( select A.FlatID, B.TraderID from ROrderS A left join ROrder B on A.BillID=B.BillID where B.VoidFlag=0 and B.StopFlag=0) as xA on f.ListID=xA.FlatIDleft outer join FJoin i on i.FlatID=f.ListID and i.VoidFlag=0 and i.OutFlag=0left join( select A.FlatID, B.TraderID from RContS A left join RCont B on A.BillID=B.BillID where B.VoidFlag=0 and B.ContClosed=0) xB on f.ListID=xB.FlatIDleft outer join L_Trader d on d.TraderID=xA.TraderIDleft outer join L_Trader e on e.TraderID=xB.TraderID left outer join LOwner w on w.ListID=i.OwnerID
Order By f.Name
