2013-03-12 102 views
0

這裏是我的MySQL的表結構的一部分:前10名的記錄從相同的MySQL表兩個字段

questionRecID  value periodMonth  periodYear  practiceID 
      16   70   11   2010    475 
      28   33   11   2010    475 
      14   226   11   2010    475 

問題錄製ID 14是用來計算百分比的分母。所以,像這樣:

percent = (70/226) * 100。這給了我2010年11月rec ID 16的問題的百分比。

我需要查詢整個表以獲得所有年份和所有月份存儲的前10個表現實踐。 php或SQL對我來說都很好。我真的被困在如何從這張表中獲取數據。

+4

你有什麼試過的?我覺得'questionRecID = 14'具有這樣一個特定目的是很奇怪的。 – 2013-03-12 09:56:33

+1

我什麼都不懂,你做70/226那麼id = 28呢? – 2013-03-12 09:58:44

+0

問題14是計算問題16百分比的分母。像這樣:q14 - 有多少患者有哮喘,q16 - 有多少患者有哮喘歸類爲持久 – user2160174 2013-03-12 11:07:10

回答

0
DROP TABLE IF EXISTS my_table; 
CREATE TABLE my_table (questionRecID  INT NOT NULL PRIMARY KEY,value INT NOT NULL,periodMonth  INT NOT NULL, periodYear  INT NOT NULL, practiceID INT NOT NULL); 
INSERT INTO my_table VALUES 
(16   ,70   ,11   ,2010    ,475 ), 
(28   ,33   ,11   ,2010    ,475), 
(14   ,226   ,11   ,2010    ,475); 

SELECT * FROM my_table; 
+---------------+-------+-------------+------------+------------+ 
| questionRecID | value | periodMonth | periodYear | practiceID | 
+---------------+-------+-------------+------------+------------+ 
|   14 | 226 |   11 |  2010 |  475 | 
|   16 | 70 |   11 |  2010 |  475 | 
|   28 | 33 |   11 |  2010 |  475 | 
+---------------+-------+-------------+------------+------------+ 

SELECT x.* 
    , x.value/y.value pct 
    FROM my_table x 
    JOIN my_table y 
    ON y.practiceid = x.practiceid 
    AND y.questionrecid = 14; 
+---------------+-------+-------------+------------+------------+--------+ 
| questionRecID | value | periodMonth | periodYear | practiceID | pct | 
+---------------+-------+-------------+------------+------------+--------+ 
|   14 | 226 |   11 |  2010 |  475 | 1.0000 | 
|   16 | 70 |   11 |  2010 |  475 | 0.3097 | 
|   28 | 33 |   11 |  2010 |  475 | 0.1460 | 
+---------------+-------+-------------+------------+------------+--------+ 
+0

這樣做。非常感謝!! – user2160174 2013-03-14 19:39:11

相關問題