不知道大家有没遇到过这种情况~~~~~~~~
沝林 2005-12-09 09:18:12 在ASP.NET中通过OLEDB访问Oracle时 ,使用到 count(distinct field)时就出错,上网查了下,好像是OLEDB不支持count distinct ,不知道大家是怎么解决这种问题的;
如果单独使用count(distinct field)可以用下面的方法代替:
select count(*) from (select distinct field from table1)
但是现在是在这样的语句里使用的:
SELECT nvl(EMPLOYEENO, '平均值') AS x,
decode(GROUPING(EMPLOYEENO), 0, SUM(JB), SUM(JB) / COUNT(DISTINCT EMPLOYEENO)) AS y
FROM TABLE1
WHERE DEPTNAME = '开发部'
GROUP BY ROLLUP(EMPLOYEENO)
这句在oracle环境下执行是没错的,但是到程序里就出错,我把SUM(JB) / COUNT(DISTINCT EMPLOYEENO)替换成 avg(JB) 和SUM(JB) / COUNT(*)就不会出错,不过这样结果就不对了
,因为一个员工可以有多条加班记录;这个sql是通过页面配置来执行的,所以不能用union的,只能通过配置统计表table1,分组字段x,合计字段y和where条件来运行sql显示表格和图形