2017-04-17 76 views
0

尝试在周围玩弄顺序,但它似乎不起作用。试图将结果截断为整数而不是小数。在php中使用ROUND()sql

在PHP当前查询的作品给我一个百分比

$query_total = "SELECT (COUNT(".$id.")* 100/(SELECT COUNT(*) FROM ".$att_tb.")) AS attOverall FROM ".$att_tb; 

我试图在使用ROUND()来TRUNC结果(不工作)

$query_total = "SELECT CAST(ROUND(COUNT(".$id.")* 100/(SELECT COUNT(*) FROM "$att_tb."),0) AS attOverall) FROM ".$att_tb; 

的工作修正将大大感谢,谢谢。

+0

你在计算和得到百分位数? – maSTAShuFu

+0

计数$ id,这是一个布尔列。第一个查询给我100.00000,这是正确的,太长了。我想放下小数点。 – DarkMalice

+2

尝试用'FLOOR()'替换一轮? http://www.w3resource.com/sql/arithmetic-functions/floor-wth-positive-value.php –

回答

1

我会写为:

SELECT AVG(CASE WHEN $id IS NOT NULL THEN 100.0 ELSE 0 END) AS attOverall 
FROM ".$att_tb; 

然后,就可以把价值给你喜欢或使用FORMAT()格式化为一个什么类型串。