-1

テーブル(ベース)があり、テーブル構造は次のとおりです。

id, name, money, manager, date

テーブルから個別の値を取得するために行う

SELECT DISTINCT name from base; 

このコードは機能しますが、このようなものが必要です

SELECT DISTINCT name SUM(money) from base;

このコードは、テーブルから 1 つの値 (名前) とすべての金額の合計のみを取得します。

このような

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 BYSUMAVGMINまたは のようなグループ関数を使用できますMAX

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

group by@Klas Lindbäckが言ったように、各名前の合計を計算するために使用できます。特定の名前 (たとえばMia) の合計のみが必要な場合は、次のクエリを使用することもできます。

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