如图,我要按客户经理和机构,统计认购记录中的总认购金额,总认购笔数,总手续费
但是查询结果却如图所示,出现了重复记录:
请问为什么会出现这种情况?

解决方案 »

  1.   

    有这几张表:
    1、redmpurc(认购记录表):
       sql_no(流水号) branchId(机构号) customerId(客户ID) applyAmt(认购金额) commission(手续费)2、customer(客户表):
       customerId(客户ID) customerName(客户名) csmgNo(客户经理ID) csmgName(客户经理姓名)3、organization(机构表):
       orgId(机构ID) orgCode(机构编号) orgName(机构名称)要求:按客户经理、机构,统计redmpurc表中 总认购金额、总手续费、总认购笔数显示格式如下:
    机构编号  机构名称  客户经理编号  客户经理名称  总认购金额  总手续费 总认购笔数
      

  2.   

    我是这样写的sql(这是系统里的原表):
    SELECT
    R.BRANCH_ID ORGCODE,
    O.ORGNAME ORGNAME,
    C.CSMG_NO CSMGNO,
    C.CSMG_NAME CSMGNAME,
    SUM(R.APPLY_AMT) APPLYAMT,
    COUNT(R.SEQ_NO) TRADEAMT,
    SUM(R.COMMISSION) AS COMMISAMT
    FROM FPS_TN_REDMPURC R
    INNER JOIN OM_ORGANIZATION O
    ON R.BRANCH_ID=O.ORGCODE
    INNER JOIN FPS_MN_CUSTOMER C
    ON R.CUSTOMER_ID=C.CUSTOMER_ID
    GROUP BY C.CSMG_NO,C.CSMG_NAME,R.BRANCH_ID,O.ORGNAME但是查出来的结果却是:
    ORGCODE    |      ORGNAME      |   CSMGNO   |  CSMGNAME |   APPLYAMT  |    COMMISSAMT | TRADEAMT
    CN0015502  |  上海银行天津分行 |   120044   |   王晓辉  |   310000    |        0      |    1
    CN0015502  |  上海银行天津分行 |   120044   |   王晓辉  |   2390000   |        0      |    4为什么不是一条记录,而是两条记录?
      

  3.   

    语句没什么问题,你应该查看你的数据
    ORGCODE | ORGNAME | CSMGNO | CSMGNAME | APPLYAMT | COMMISSAMT | TRADEAMT
    CN0015502 | 上海银行天津分行 | 120044 | 王晓辉 | 310000 | 0 | 1
    CN0015502 | 上海银行天津分行 | 120044 | 王晓辉 | 2390000 | 0 | 4对前4列用length函数 看下这两条数据是否是一致,有可能是空格导致的
      

  4.   

    SELECT
    LENGTH(ORGCODE),
    LENGTH(ORGNAME),
    LENGTH(CSMGNO),
    LENGTH(CSMGNAME)
    FROM
    (SELECT
    R.BRANCH_ID ORGCODE,
    O.ORGNAME ORGNAME,
    C.CSMG_NO CSMGNO,
    C.CSMG_NAME CSMGNAME,
    SUM(R.APPLY_AMT) APPLYAMT,
    COUNT(R.SEQ_NO) TRADEAMT,
    SUM(R.COMMISSION) AS COMMISAMT
    FROM FPS_TN_REDMPURC R
    INNER JOIN OM_ORGANIZATION O
    ON R.BRANCH_ID=O.ORGCODE
    INNER JOIN FPS_MN_CUSTOMER C
    ON R.CUSTOMER_ID=C.CUSTOMER_ID
    WHERE R.TRAN_TYPE='01'
    GROUP BY C.CSMG_NO,C.CSMG_NAME,R.BRANCH_ID,O.ORGNAME)
    WHERE ORGNAME='上海银行天津分行'查过了,好像不是长度问题!!!
      

  5.   

    哦,靠,知道问题出在哪了?ORGCODE   |      ORGNAME     | CSMGNO   | CSMGNAME | APPLYAMT | COMMISSAMT | TRADEAMT
    CN0015502 | 上海银行天津分行 | 120044   | 王晓辉   | 310000   |    0       | 1
    CN0015502 | 上海银行天津分行 | 120044   | 王晓晖   | 2390000  |    0       | 4请仔细看这两个客户经理名称。 - . -
      

  6.   

    不是SQL语句的错,是他们测试部的数据有问题