2011-10-19 18 views
0

私は質問を明確にするためにイメージを添付しています。私は今年に関してセクションを定義しているPHPの代わりにSQLクエリを使用して同じ年のすべての行を追加

enter image description here

、私は毎年の行は各年の1行を作るために追加すべきことをしたいです。

たとえば2009年または2009年のAnoの場合、1つの行があり、Mes、S、N、OおよびTotalはすべて2009年のすべての行の合計になります。2010年の場合も同様です。 Ano、Mes、S、N、O、Totalを含む3つの行が3年間存在します。

私はそれをprogrammaticaly phpを使用して行うことができますが、私はMySQLのSQlクエリを使用してそれをしたい。誰もそれを助けることができますか?

+0

を投稿しますあなたのテーブルの構造は、いくつかのサンプルデータと共に、誰かがこの質問に答えるのを助けるために遠くに行くでしょう。 –

答えて

1
select 
    Ano, 
    Sum(Mes), 
    Sum(S), 
    Sum(N), 
    Sum(O), 
    Sum(Total) 
from 
    MyTable 
Group By Ano 
0

このやるべきことにより、簡単なグループ:Anoによってグループにあなたが持っている

SELECT t.*, 
     all_mes + all_s + all_n + all_o as total 
FROM ( 
    SELECT anno, 
      sum(mes) as all_mes, 
      sum(s) as all_s, 
      sum(n) as all_n, 
      sum(o) as all_o 
    FROM your_table 
) t 
GROUP BY anno; 
0

:派生テーブルを使用して、追加の列として合計を取得するには

SELECT anno, 
     sum(mes) as all_mes, 
     sum(s) as all_s, 
     sum(n) as all_n, 
     sum(o) as all_o 
FROM your_table 
GROUP BY anno; 

をしかし、私はあなたが月を合計したくないと思う...

年/月の合計を表示したい場合do :

select Ano, Mes, Sum(S), Sum(N) , Sum(O), Sum(Total) 
from 
    MyTable 
Group By Ano, Mes 

あなたが年の合計と月のnumbreが何を見たい場合:

select ... Count(Mes) ... Group By Ano 

あなたが年の合計を表示したい場合は、操作を行います。

select Ano, Sum(S), Sum(N) , Sum(O), Sum(Total) 
from 
    MyTable 
Group By Ano 
関連する問題