表连接的语句 (紧急求助)
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.temp1,a表时间段内数据
2.temp2,temp1 left join b表时间段内数据
3.temp3,temp2 left join c表时间段内数据
4.temp4,temp3 left join d表时间段内数据
------解决方案--------------------
--试试把联立条件全部写成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
------解决方案--------------------
SQL code
--试下这个
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