开发者社区> 问答> 正文

mysql多表统计笛卡尔积的问题

SQL代码如下:
SELECT e.userno,e.fullname, COUNT(sp.id) pactct, SUM(sp.tamt) pactamt, COUNT(so.id)ordct, SUM(so.zhtamt) ordamt, COUNT(c.id)custct, COUNT(coct.id)CONCT, COUNT(po.id)porct, SUM(po.zhtamt) poram FROM hr_employee e LEFT JOIN scm_salepact sp ON sp.saler=e.id AND sp.shstate=2 AND sp.ctime >='2014-01-01' AND sp.ctime<='2014-12-31' LEFT JOIN scm_saleorder so ON so.saler=e.id AND so.shstate=2 AND so.ctime >='2014-01-01' AND so.ctime<='2014-12-31' LEFT JOIN crm_customer c ON c.creater=e.id AND c.ctime >='2014-01-01' AND c.ctime<='2014-12-31' LEFT JOIN crm_contactrecord coct ON coct.lxr=e.id AND coct.ptime >='2014-01-01' AND coct.ptime<='2014-12-31' LEFT JOIN scm_salepriceorder po ON po.creater=e.id AND po.shstate=2 AND po.ctime >='2014-01-01' AND po.ctime<='2014-12-31'
而运行的结果却是:
1

这些统计值都是重复了

求解!!

展开
收起
落地花开啦 2016-02-28 11:25:31 2670 0
1 条回答
写回答
取消 提交回答
  • 喜欢技术,喜欢努力的人

    select id,name,count(distinct id) from tablename
    加上count(distinct id)试试

    2019-07-17 18:49:27
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
搭建电商项目架构连接MySQL 立即下载
搭建4层电商项目架构,实战连接MySQL 立即下载
PolarDB MySQL引擎重磅功能及产品能力盛大发布 立即下载

相关镜像