2013-04-15 40 views
-1

我有一個表(基地)和一個表結構爲:真正的MySQL聲明

id, name, money, manager, date 

我做從表中檢索不同的值

SELECT DISTINCT name from base; 

該代碼的作品,但我需要的東西像這樣

SELECT DISTINCT name SUM(money) from base; 

這段代碼從表中只檢索一個值(名稱)和所有貨幣值的總和:

這樣

id  name  money manager  date 
===  =====  ===== ======= =========== 
1  John  3000  Scot  10.04.2013 

我需要的名字DISTINCT和一筆錢

id  name  money manager  date 
    ===  =====  ===== ======= =========== 
    1  John  150  Scot  10.04.2013 
    2  Mia  200  Scot  11.04.2013 
    3  Monica  650  Scot  09.04.2013 
    ...  ......  ...  ....  .......... 

如果我添加的SQL查詢是這樣的:

SELECT DISTINCT name, SUM(money) FROM base WHERE name='Mia' 

SELECT name, SUM(money) FROM base WHERE name='Mia' 

代碼有效。如何在表中的所有記錄上這樣做?

我使用:

的Mysql 5.5.24, 德爾福XE3, 德爾福SQL組件Unidac

對不起,我英文不好

回答

5

GROUP BY將允許您使用組功能,如SUMAVGMINMAX

SELECT name, SUM(money) FROM base GROUP BY name; 
+0

感謝您的回答。 – vkatsitadze

1

我不確定你想要得到什麼,我想這是所有記錄名爲Mia的錢的總和。

SELECT (SELECT SUM(money) FROM base WHERE name='Mia') as money, DISTINCT name FROM base WHERE name='Mia' 

MIA的

和普遍使用

SELECT (SELECT SUM(money) FROM base b1 WHERE b1.id=b2.id) as money, DISTINCT name FROM base b2 
0

正如@KlasLindbäck說,你可以爲了計算每個名字的總和使用group by。 如果你只需要一個給定名稱的總和(假設Mia),你也可以使用此查詢:

SELECT 'Mia' as name, SUM(money) from base where name = 'Mia';