次に、あなたのデータは「によってグループ化されたときに、あなたがmoney
を合計したいと仮定すると、(彼らは数が100で割った余りです)末尾2桁を取得するためにmodular arithmeticを使用することができます「月:また
SELECT month_x % 100 AS Month, SUM(money) AS TOTAL
FROM testa
GROUP BY Month
ORDER BY Month ASC;
、あなたが使用できるMySQLのimplicit type conversionに依存しており、その文字列関数を使用します。
SELECT RIGHT(month_x, 2) AS Month, SUM(money) AS TOTAL
FROM testa
GROUP BY Month
ORDER BY Month ASC;
@ shiplu.mokadd.im状態として
UPDATE
、(あなたはデータがないものもいる)、毎月、あなたは一時テーブルから12までの番号1を取得する必要がありますを表示します。ただし、UNION
を使用して、クエリで、このような一時テーブルを作成することができますので
SELECT 1
UNION SELECT 2
UNION SELECT 3 -- etc
ただし
SELECT Month, Sum(money) AS TOTAL
FROM testa
RIGHT JOIN (
SELECT 1 AS Month
UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5 UNION SELECT 6
UNION SELECT 7 UNION SELECT 8 UNION SELECT 9 UNION SELECT 10 UNION SELECT 11
UNION SELECT 12
) months ON testa.month_x % 100 = months.Month
GROUP BY Month;
私はは通常 1が通常でこれを行いませんのでご注意ますあなたがデータベースにアクセスしている言語を問わず、1...12
をループして、であると仮定します。もしrに対応するレコードがなければesultset。
それは単一のテーブルではできません.. ?? –
いいえ、それは不可能です。しかし、あなたはすべてのことを手続きに入れることができます。しかし、このようなクエリのために毎回テンポラリテーブルを作成するとパフォーマンスが低下します。そういうわけで、そのような永久的なテーブル –