あなたの質問は本当に不明確です....
http://sqlfiddle.com/#!2/d0bc3/1/0
create table GL_Table (
Country varchar(20),
Account varchar(20),
Amount float
);
insert into GL_Table values ('USA','PTBI',100);
insert into GL_Table values ('USA','PTBI',100);
insert into GL_Table values ('USA','PTBI',100);
insert into GL_Table values ('USA','MLS_ENT',101);
insert into GL_Table values ('USA','RSC_DEV',102);
insert into GL_Table values ('USA','RSC_DEV',102);
insert into GL_Table values ('USA','NOTHING',777);
insert into GL_Table values ('USA','NOTHING',777);
したがって、データは次のようになります。
COUNTRY ACCOUNT AMOUNT
USA PTBI 100
USA PTBI 100
USA PTBI 100
USA MLS_ENT 101
USA RSC_DEV 102
USA RSC_DEV 102
USA NOTHING 777
USA NOTHING 777
SUM
次に、特定のもののみの行を追加するクエリは次のようになります。
INSERT INTO GL_TABLE
SELECT COUNTRY,
concat('SUM OF ', ACCOUNT) as NEW_ACCT_NAME,
SUM(AMOUNT) as SUM_ACCOUNT
FROM GL_TABLE
WHERE ACCOUNT IN ('PTBI', 'MLS_ENT','VAL_ALLOW','RSC_DEV')
GROUP BY COUNTRY, ACCOUNT;
データは ( select * from gl_table
)になります。
COUNTRY ACCOUNT AMOUNT
USA PTBI 100
USA PTBI 100
USA PTBI 100
USA MLS_ENT 101
USA RSC_DEV 102
USA RSC_DEV 102
USA NOTHING 777
USA NOTHING 777
USA SUM OF MLS_ENT 101
USA SUM OF PTBI 300
USA SUM OF RSC_DEV 204
クエリをもう一度見てみると、国の合計が必要なようですね? わからない...(あまり変わらないだろう)
INSERT INTO GL_TABLE
SELECT COUNTRY,
concat('SUM FOR ', COUNTRY) as NEW_ACCT_NAME,
SUM(AMOUNT) as SUM_ACCOUNT
FROM GL_TABLE
WHERE ACCOUNT IN ('PTBI', 'MLS_ENT','VAL_ALLOW','RSC_DEV')
GROUP BY COUNTRY;
そのため、データは最終的に...
COUNTRY ACCOUNT AMOUNT
USA PTBI 100
USA PTBI 100
USA PTBI 100
USA MLS_ENT 101
USA RSC_DEV 102
USA RSC_DEV 102
USA NOTHING 777
USA NOTHING 777
USA SUM FOR USA 605