请教这个问题:表:员工编号、姓名、性别、学历、员工类型、出生日期 等等 现在要作成这样的报表: 项目 数量 比例(%)
男 40 40
女 60 60SELECT 性别,count(性别),(SELECT COUNT(*)
FROM ygda
WHERE a.性别 = 性别)/(select count(*) from ygda)
FROM ygda a
GROUP BY 性别为什么查询出来的 比例 是 0 呢?我问过好多人,他们都说语句是正常,没什么毛病,但我还是觉得有问题,请你们帮我查查啦,谢谢
男 40 40
女 60 60SELECT 性别,count(性别),(SELECT COUNT(*)
FROM ygda
WHERE a.性别 = 性别)/(select count(*) from ygda)
FROM ygda a
GROUP BY 性别为什么查询出来的 比例 是 0 呢?我问过好多人,他们都说语句是正常,没什么毛病,但我还是觉得有问题,请你们帮我查查啦,谢谢
解决方案 »
- 函数引用POPUPmenu的方法
- FastReport报表在同一页中如何自动换列?
- 如何清空treeview中的内容?(在线)!
- 如何用Delphi实现在SQL数据库中存取二进制数据
- delphi cxgrid 问题
- teechart 怎样得到这样的chart啊
- 谁能在代码中添加记录集中的部分字段和增加新的用来计算的字段(200分单独给)
- 120分:寻找rascomp32控件和例程!
- 如何解决:access violation at 016af795:read of address of 0x0181a630
- DELPHI中的BUG
- 如何把A1.MDB的数据导进A2.MDB里?
- 在OpenXML的CDATA Section中存储二进制数据的问题
WHERE a.性别 = 性别),(SELECT COUNT(*)
FROM ygda
WHERE a.性别 = 性别)/(select count(性别) from ygda)
FROM ygda a
GROUP BY 性别上面的语句改成这样,比例还是为0,郁闷呀
SELECT 性别,(SELECT COUNT(*) FROM ygda
WHERE a.性别 = 性别),(SELECT COUNT(*)
FROM ygda
WHERE a.性别 = 性别)/(select count(性别) from ygda)
FROM ygda a
GROUP BY 性别
这个查询语句吗?cuteant哥,我确实是试过N次了,但都比例查出来还是0的,为什么?帮我解吸一下,好吗?
增加了10条记录,name分别为1到10,id是自动编号的,为1到10,xb交替为男、女然后用了下面的select语句,没有发现问题
SQL.Text('SELECT xb,(SELECT COUNT(*) FROM main WHERE a.xb = xb),(SELECT COUNT(*) FROM main WHERE a.xb = xb)/(select count(xb) from main) FROM main a GROUP BY xb');
SELECT 性别,(SELECT COUNT(*) FROM ygda
WHERE a.性别 = 性别),(SELECT COUNT(*)
FROM ygda
WHERE a.性别 = 性别)*1.0/(select count(性别) from ygda)
FROM ygda a
GROUP BY 性别
上述语句上 我加上了 *1.0 比例就出来的,不过它的小数点有好多位,如果我想只显示4位小数点的话,又如何解决呢?
SELECT 性别,
(SELECT COUNT(*)
FROM ygda
WHERE a.性别 = 性别) AS Expr1, CONVERT(varchar(4),
(SELECT COUNT(*)
FROM ygda
WHERE a.性别 = 性别) * 1.0 /
(SELECT COUNT(性别)
FROM ygda) * 100) AS Expr2
FROM ygda a
GROUP BY 性别
它就提示 numeric 转换 varchar 发生算术益出,请教,如何改才是正确的?谢谢啦,
/(select count(*) from ygda)*100,2) as numeric(8,2))
FROM ygda a
GROUP BY 性别as numeric(8,2))