希望能指点一下??需要其中fnumber这个值

select  b.fassetnumber as 资产编码,b.fassetnumber as 卡片编号,b.fassetname as 资产名称,b.fgroupid as  资产类型编码,b.fnum as 数量,
b.fmodel as 规格型号, b.FBeginUseDate as 开始使用日期,b.FOrgVal as 原值,a.FAccumDeprP as 累计折旧,cc.本年计提折旧,
a.FOrgValDec as 本期月初累计减值准备,a.FAccumDeprDec as 累计减值准备金额, b.FResidueVal as 净残值, b.FLifePeriods as 折旧年限,a.FAssetID,
b.FAlterModeID as 增加类型,b.FAlterModeID as 增加方式,b.FStatusID as 使用状况编码,d.fnumber as  部门编码串,e.fname as 存放地点,b.FOrgVal as 录入时原值,a.FDepr as 四月折旧
from t_fabalance a
left join t_fabalcard b on a.fbalid=b.fbalid
--left join (select  aa.fbalid,bb.fitemid,fnumber,fname,FAmount from  t_FABalDept aa inner join t_item bb on aa.fitemid=bb.fitemid) d on b.fbalid=d.fbalid
inner join (select b.fassetnumber as 资产编码,sum(fdepr) as 本年计提折旧  from t_fabalcard b left join t_fabalance a on a.fbalid=b.fbalid where fyear='2011' and FPeriod in ('1','2','3','4','5') group by fassetnumber) cc on b.fassetnumber=cc.资产编码
left join t_FALocation e on b.FLocationID=e.fid
where FYear='2011'and FPeriod='5'
只要加上--left join (select  aa.fbalid,bb.fitemid,fnumber,fname,FAmount from  t_FABalDept aa inner join t_item bb on aa.fitemid=bb.fitemid) d on b.fbalid=d.fbalid
就会出现多余的值 不加的话就是正确的结果 但我又需要其中fnumber这个值
请问我怎样如果做??谢谢

作者: thankthank   发布时间: 2011-08-03

select * from a left join b on a.id=b.id  
--left join 的主表取的是a 表
当a表内容比b表多 同时又满足了连接条件
a---b
a---b1
类似与 一个 主表和子表 的关系~

作者: bagawang   发布时间: 2011-08-04

只要加上--left join (select  aa.fbalid,bb.fitemid,fnumber,fname,FAmount from  t_FABalDept aa inner join t_item bb on aa.fitemid=bb.fitemid) d on b.fbalid=d.fbalid

对这个子查询distinct一下,确保唯一值。

作者: oswica   发布时间: 2011-08-04