指定した条件の組み合わせのSQL文
SQLite バージョン3.7.10 を使用しています。
以下のようなテーブル構造で、
「t1」テーブルの全ての行と
「t6」テーブルのdateカラムの年の部分を
グループ化して全ての組み合わせの
「t6」テーブルのamount の合計を出力したいのですが、
どのようなSQL文を書けば良いのでしょうか?
例えばこのデータ内容なら、以下のような結果が得たいです。
+------+-------+-------+
| year | t1_name | 合計 |
+------+-------+-------+
| 2011 |t1_name1| 5000|
+------+-------+------+
| 2012 |t1_name1| 10000|
+------+-------+------+
| 2012 |t1_name2| 45000|
+------+-------+------+
PRAGMA foreign_keys = ON;
DROP TABLE IF EXISTS t6;
DROP TABLE IF EXISTS t1;
CREATE TABLE t1 (
key TEXT PRIMARY KEY NOT NULL,
name TEXT NOT NULL UNIQUE
);
INSERT INTO t1 (key, name) VALUES ('t1_key1', 't1_name1');
INSERT INTO t1 (key, name) VALUES ('t1_key2', 't1_name2');
CREATE TABLE t6 (
no INTEGER PRIMARY KEY AUTOINCREMENT,
t1_key TEXT NOT NULL,
date TEXT NOT NULL,
amount INTEGER NOT NULL,
FOREIGN KEY(t1_key) REFERENCES t1(key) ON DELETE CASCADE
);
CREATE INDEX date on t6(date);
INSERT INTO t6 (t1_key, date, amount) VALUES ('t1_key1', '2011-01-01', 5000);
INSERT INTO t6 (t1_key, date, amount) VALUES ('t1_key1', '2012-01-01', 10000);
INSERT INTO t6 (t1_key, date, amount) VALUES ('t1_key2', '2012-01-01', 15000);
INSERT INTO t6 (t1_key, date, amount) VALUES ('t1_key2', '2012-02-01', 30000);
http://ideone.com/I1mMba