完整代码呢?select 后面的字段至少得列出来啊

解决方案 »

  1.   

    select one.pk_voucher,one.pk_detail,cash.*
    from gl_detail one 
    left join (select pk_detail,sum(money) as money
    from gl_cashflowcase t1
    inner join bd_cashflow t2 on t1.pk_cashflow = t2.pk_cashflow
    group by pk_detail) cash 
    on one.pk_detail = cash.pk_detail
    同样的代码语句在不同的机器执行出的结果不一样,应该不是语句的问题
      

  2.   

    单独查一下select pk_detail,sum(money) as money
    from gl_cashflowcase t1
    inner join bd_cashflow t2 on t1.pk_cashflow = t2.pk_cashflow
    group by pk_detail
    这一段,结果集中pk_detail有值么
      

  3.   

    我觉得是没有问题的,理论上crash既然是空表,crash.*应该都是null的。
      

  4.   

    b既然是空表,b.pk_detail 怎么可能还会有值呢?
      

  5.   

    把第一个cash括号里面的代码拿出来单独执行看看?pk_detail是t1还是t2表里面的字段?
      

  6.   

    问题解决了,方法如下:
    create table gl_cashflowcase_back as select * from gl_cashflowcase;
    drop table gl_cashflowcase;
    create table gl_cashflowcase as select * from gl_cashflowcase_back;
    纠结,造成这种现象的原因,是缓存......