XF_BANKCARDLEDGER //店铺号  表1  获取店铺号
XF_STORECODE  //店铺号字段
           XF_TXDATE  //时间XF_TRANSSALESITEM     //商品号 表2 获取商品号  获取销售金额总和
XF_STORECODE //店铺号字段
XF_PLU  //商品号
sum(XF_AMTSOLD)  //销售金额的总和
            XF_TXDATE  //时间XF_BSSETTLEMEMOD1_EXT  //扣率  表3 获取扣率  获取店铺类型
        XF_COMMRATE  //扣率字段
XF_BSCHARGECODE  //店铺类型编号
XF_REFSTORECODE  //商铺号
          XF_REFTXDATE //时间XF_BSCONTRACTH //店铺名称  表4   获取店铺名称
XF_STORECODE //店铺号字段
XF_CONTRACTDESC  //店铺名称字段
           
where select a.XF_STORECODE,b.XF_STORECODE,b.XF_PLU,c.XF_COMMRATE,c.XF_BSCHARGECODE,d.XF_STORECODE,d.XF_CONTRACTDESC from XF_BANKCARDLEDGER a left join XF_TRANSSALESITEM b on a.XF_STORECODE=b.XF_STORECODE left join XF_BSSETTLEMEMOD1_EXT c on b.XF_STORECODE=c.XF_REFSTORECODE left join XF_BSCONTRACTH d on d.XF_STORECODE=c.XF_REFSTORECODE这句 一直出同一个结果。  什么问题呢. 帮忙写一个效率高点的吧.    4个表关联一下  拿商铺名称关联   表的共同特点 4张表都有 店铺号字段. 但是 表1的店铺号最全  想把表1的店铺号全显示出来  然后用 where 时间 过滤一下.

解决方案 »

  1.   

    存储过程?
    1.temp1,a表时间段内数据
    2.temp2,temp1 left join b表时间段内数据
    3.temp3,temp2 left join c表时间段内数据
    4.temp4,temp3 left join d表时间段内数据
      

  2.   

    --试试把联立条件全部写成A的左联接
    FROM XF_BANKCARDLEDGER a
    LEFT JOIN XF_TRANSSALESITEM b
    ON a.XF_STORECODE=b.XF_STORECODE
    LEFT JOIN XF_BSSETTLEMEMOD1_EXT c
    ON a.XF_STORECODE=c.XF_REFSTORECODE
    LEFT JOIN XF_BSCONTRACTH d
    ON a.XF_STORECODE=d.XF_REFSTORECODE
      

  3.   

    --试下这个
    SELECT a.XF_STORECODE,b.XF_STORECODE,b.XF_PLU,c.XF_COMMRATE,c.XF_BSCHARGECODE,d.XF_STORECODE,d.XF_CONTRACTDESC 
      FROM XF_BANKCARDLEDGER a ,XF_TRANSSALESITEM b,F_BSSETTLEMEMOD1_EXT c, XF_BSCONTRACTH d 
      WHERE a.XF_STORECODE=b.XF_STORECODE AND b.XF_STORECODE=c.XF_REFSTORECODE AND c.XF_REFSTORECODE=d.XF_STORECODE