两个表
MF_BOM_SO,TF_BOM_SO表MF_BOM_SO有以下数据
BOM_NO    CST_MAN      CST_MAKE
B1          20           10
B2          10           5
B3          5            10表TF_BOM_SO有以下数据
BOM_NO    PRD_NO      ID_NO(下层结点)
B1          P_1        B2
B1          P_2        
B1          P_2        B3现在我想查询表MF_BOM_SO字段BOM_NO=B1的数据,并把所有下层结点的CST_MAN,CST_MAKE相加得到以下结果BOM_NO    CST_MAN      CST_MAKE
B1         35              25

解决方案 »

  1.   

    select sum(CST_MAN),sum(CST_MAKE) 
    from MF_BOM_SO
    where BOM_NO in(select ID_NO from TF_BOM_SO where BOM_NO='b1') or BOM_NO ='b1'
      

  2.   

    试试
    create table MF_BOM_SO
    (BOM_NO varchar(5),
    CST_MAN int,
    CST_MAKE int)create table TF_BOM_SO
    (BOM_NO varchar(5),
    PRD_NO varchar(5),
    ID_NO varchar(5))
    insert MF_BOM_SO
    select 'B1',20,10 union all 
    select 'B2',10,5 union all 
    select 'B3',5,10 insert TF_BOM_SO
    select 'B1','P_1','B2' union all 
    select 'B1','P_2','' union all 
    select 'B1','P_3','B3' 
    select a.BOM_NO,sum(CST_MAN),sum(CST_MAKE) 
    from TF_BOM_SO a left join MF_BOM_SO b on (case when a.ID_NO='' then a.BOM_NO else ID_NO end) =b.BOM_NO
    where a.BOM_NO='B1'
    group by a.BOM_NO
      

  3.   

    愣是没整明白
    你的问题和TF_BOM_SO有啥关系啊 
    还有你说的下层是啥意思啊?