2014-01-22 61 views
1

我试图获得查询的1列的SUM。我希望将Ex,Est和WP匹配的Len和Stat在电缆,绳索或SubDucted中的位置合并。我的数据库看起来如下来自查询的列的总和

Ex   Est   WP  Sec  Len Stat TM 
Sacriston IBGLEPTA WP1-WP2 7901 7 Cabled NoTM 
Sacriston IBGLEPTE WP1-WP2 6182 80 Roped NoTM 
Sacriston IBGLEPTE WP1-WP2 7206 156 Cabled NoTM 
Sacriston IBGLEPTE WP1-WP2 7207 80 SubDucted NoTM 
Sacriston IBGLEPTE WP1-WP2 7207A 130 Cabled NoTM 
Sacriston IBGLEPTE WP1-WP2 7208 111 SubDucted NoTM 
Sacriston IBGLEPTE WP1-WP2 7208A 116 Desilt NoTM 
Sacriston IBGLEPTE WP1-WP2 7209 58 Overlay TM 
Sacriston IBGLEPTE WP1-WP2 7209A 177 SubDucted NoTM 
Sacriston IBGLEPTE WP1-WP2 7341 38 Cabled NoTM 
Sacriston IBGLEPTE WP1-WP2 7342 189 Unproven NoTM 

我查询

$result = mysql_query("SELECT SUM(Length) AS totalm FROM btsec WHERE WP='$wpchose' AND Exchange='$exchose' AND Estimate='$jobchose'"); 
    $row = mysql_fetch_assoc($result); 
    $totalm = $row['totalm']; 

    $result1 = mysql_query("SELECT SUM(Length) AS totalroped FROM btsec WHERE WP='$wpchose' AND Exchange='$exchose' AND Estimate='$jobchose' AND Status='Roped' OR Status='SubDucted' OR Status='Cabled'"); 
    $row1 = mysql_fetch_assoc($result1); 
    $roped = $row1['totalroped']; 
    $ropedp = (int)(($roped/$totalm) * 100+.5); 

这是给不正确的结果,我结束了的东西是11000%完成?

回答

1

这个查询是不正确的

$result1 = mysql_query("SELECT SUM(Length) AS totalroped FROM btsec WHERE WP='$wpchose' AND Exchange='$exchose' AND Estimate='$jobchose' AND Status='Roped' OR Status='SubDucted' OR Status='Cabled'"); 

应该

$result1 = mysql_query("SELECT SUM(Length) AS totalroped FROM btsec WHERE WP='$wpchose' AND Exchange='$exchose' AND Estimate='$jobchose' AND (Status='Roped' OR Status='SubDucted' OR Status='Cabled')"); 
+0

谢谢。这工作。我会尽快接受答案 –

+0

欢迎您:) –