我有一个表(销售单)中一个人员销售的业绩信息,但现在需求变成一个销售单可能要分给几个人员;所以我就创建了一个表(人员分配金额表),记录每个人员的分配业绩
我想在查询的时候,如果销售单里有一个人员ID,就不去关联创建的人员分配金额表了, 如果销售单里人员ID为null,就left join 人员分配金额表 
怎么实现这种需求?  
只写sql语句,不要存储过程向大牛求助!

解决方案 »

  1.   

    我是新手。
    按我自己来说。sql 不能实现...
      

  2.   

             1          m          n          1
    销售人员表-------------销售业绩表-------------销售单表
    lz应该调整数据库表的结构,不能将就着去改sql语句,不是不能改,这样的改动没意义,治标不治本
      

  3.   


    --按你現在表的語句
    select t1.銷售單號,t2.人員ID,t2.金額
    from 銷售單 t1,人员分配金额表 t2
    where t1.銷售單號=t2.銷售單號 
    and t1.人員ID is null
    union all 
    select 銷售單號,人員ID,金額 from 銷售單
    where t1.人員ID is not null;
    不過建議你這樣設計,還有表及列名稱最好不要用中文:
    銷售單:銷售單號,總金額--銷售單號PK
    人员分配金额表:銷售單號,人員ID,金額--銷售單號,金額PK
    銷售人員:人員ID,人員名稱--人員IDPK
      

  4.   


    --最後一句where t1.人員ID is not null;去掉t1.
    where 人員ID is not null;