-1

我有一个表(基础),表结构是:

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 和钱 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, Delphi sql 组件 Unidac

对不起,我的英语不好

4

3 回答 3

5

GROUP BY将允许您使用组函数,如SUM、或 :AVGMINMAX

SELECT name, SUM(money) FROM base GROUP BY name;
于 2013-04-15T10:40:59.577 回答
1

我不确定你想得到什么,我想这是所有名字为 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 
于 2013-04-15T10:42:26.667 回答
0

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

 SELECT 'Mia' as name, SUM(money) from base where name = 'Mia';
于 2013-04-15T10:54:30.390 回答