日期:2014-05-18  浏览次数:20535 次

这是为什么啊?
表A A01 A02 A03 A04 A05 A06 A07 A08 A09

  1001 A 2012 2 销售 01 011 -60
  1001 A 1 2012 2 进货 01 011 60
  1001 A 2012 2 销售 01 012 -10
  1001 A 2012 2 进货 01 012 20
为什么select A01,A02,A03,A04,imk05,A06,A07,A08,
  Max(Decode(smydesc, '销售', A09, 0)) 销售,
  Max(Decode(smydesc, '进货', A09, 0)) 进货
  from CES group by A01,A02,A03,A04,imk05,A06,A07,A08
得出的结果会把负数变为0??



------解决方案--------------------
因为0比负数大,所以显示为0,更改为NULL就行了.

elect A01,A02,A03,A04,imk05,A06,A07,A08,
Max(Decode(smydesc, '销售', A09, null)) 销售,
Max(Decode(smydesc, '进货', A09, null)) 进货
from CES group by A01,A02,A03,A04,imk05,A06,A07,A08