true MySQL statement



我有一个表(base)和一个表的结构是:

id, name, money, manager, date

i do从表中检索不同的值

SELECT DISTINCT name from base; 

这段代码可以工作,但是我需要这样的东西

SELECT DISTINCT name SUM(money) from base;

这段代码只从一个表中检索一个值(name)和所有money值的总和:

这样的

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

我需要名字,DISTINCT和money SUM

   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,Delphi Xe3,sql组件

对不起,我的英语不好

GROUP BY将允许您使用SUM, AVG, MINMAX等组函数:

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

我不知道你想要什么,我猜是所有名字为Mia的记录的一些钱。

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

和通用的

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

正如@Klas Lindbäck所说,您可以使用group by来计算每个名称的总和。如果只需要给定名称的和(比如Mia),还可以使用以下查询:

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

最新更新