希望能幫到你,這是推動我逼瘋了計算百分比
我需要計算的時間問題已經失敗的百分比,但這需要由被縮小地理區域和這些問題的產品被要求反對。
我:
$CA002 = "(SELECT ROUND(100 * (SELECT count(CA002Result) from Data_Table where (CA002Result='Fail'))/count(CA002Result),2) from Data_Table) AS 'CA002 %'";
其中 '作品',但只是針對計算整個組記錄作爲一個 '整體'
我想:
$CA001 = "(SELECT ROUND(100 * (SELECT count(CA001Result) from Data_Table where (CA001Result='Fail' AND Area ='$Area'))/count(CA001Result) from Data_Table WHERE (Area='$Area'),2) AS 'CA001 %'";
,也:
$CA001 = "(SELECT ROUND(100 * (SELECT count(CA001Result) from Data_Table where (CA001Result='Fail' AND Product='$product' AND Area='$Area'))
/ count(CA001Result WHERE Product = '$product' AND Area='$Area'),2) from Data_Table) AS 'CA001 %'";
也嘗試這個,但得到一個MYSQL語法錯誤。
$CA001 = "(SELECT ROUND(100 * (SELECT count(CA001Result) from Data_Table where (CA001Result='Fail'))/ (SELECT (count(CA001Result) from Data_Table WHERE (Area='$Area')),2) AS 'CA001 %')";
無論我嘗試什麼,我都會得到錯誤,我似乎無法解決我需要放在哪裏。
嘗試以下答案:
$CA001 = "(SELECT 100 * SUM(IF(CA001Result='Fail', 1, 0))/COUNT(CA001Result) as 'CA001 %' WHERE Area='$Area')";
$CA002 = "(SELECT ROUND(100 * (SELECT count(CA002Result) from Data_Table where (CA002Result='Fail'))/count(CA002Result),2) from Data_Table) AS 'CA002 %'";
,但我得到了下面的錯誤:
MySQL錯誤:您的SQL語法錯誤; '(SELECT ROUND(100 *(SELECT count(CA002Result)from Data_Table where'(CA002Re'at line 1''))(對應於你的MySQL服務器版本的手冊,選擇正確的語法。)任何幫助非常感謝,謝謝。
編輯 - 破解它使用:
$CA001 ="ROUND ((SELECT 100 * SUM(IF(CA001Result='Fail', 1, 0))/COUNT(CA001Result)
FROM Data_Table
WHERE Area='$Area'),2) as 'CA001 %'";
感謝這麼多的幫助
你應該包括你的表結構。此外,單詞包裝您的查詢,使他們更容易閱讀。 – Ariel
表結構是將在每個記錄中寫入通過或失敗的問題(例如CA001Result)。這裏有一個Product列和Area列以及不同列中的員工姓名。我基本上試圖找出有關該產品(也從POST值中選擇)的問題總數的百分比,該百分比與該區域中的人員(從POST值中選擇)回答的人數有多少有關。 –
你爲什麼要將查詢包裝在()中? - 在我看來,是什麼導致了例外。 –