以下に示す 2 つのクエリがあります。クエリは同じテーブルを選択しますが、条件と列数が異なります。これらを組み合わせる方法を解決できません。何か方法はありますか?
最初のクエリは次のとおりです。
SELECT b.centerBranchNumber,
b.countryCode,
a.type,
SUM(DECODE(a.status, 1, 1, 0)) filled
FROM tableA a,
tableB b
WHERE a.branchCode = b.branchCode
AND a.registerNumber IN (SELECT c.registerNumber
FROM tableC c
WHERE c.registerDate <= '01.02.2013'
AND c.state = 'A'
AND c.contractState != 2)
GROUP BY b.centerBranchNumber,
b.countryCode,
a.type;
結果は次のようになります。
BranchNumber CountryCode Type Filled
1452 USA 0 5
1452 USA 2 8
1452 USA 1 16
7854 GER 0 10
7854 GER 1 3
2 番目のクエリは次のとおりです。
SELECT b.centerBranchNumber,
b.countryCode,
a.type,
SUM(DECODE(a.status, 0, 1, 0)) free,
SUM(DECODE(a.status, 2, 1, 0)) damaged
FROM tableA a,
tableB b
WHERE a.kks_kayitdrm = 'A'
AND a.branchCode = b.branchCode
AND a.recordDate <= '01.02.2013'
GROUP BY b.centerBranchNumber,
a.type,
b.countryCode;
結果は次のとおりです。
BranchNumber CountryCode Type Free Damage
1452 USA 0 5 2
1452 USA 2 8 1
1452 USA 1 16 5
7854 GER 0 10 9
7854 GER 1 3 16
組み合わせると、次のような結果が必要になります。
BranchNumber CountryCode Type Filled Free Damage
1452 USA 0 1 5 2
1452 USA 2 2 8 1
1452 USA 1 65 16 5
7854 GER 0 7 10 9
7854 GER 1 45 3 16