2つの異なるテーブルのリソース列の個別のカウントを取得してから、各プロジェクトIDの比較を表示しようとしています。現在、このクエリは両方のテーブルに同じカウント値を提供します。
select
t1.PRJCT_ID,
count(t1.RSRC_ID) as TBL1_RSRC_CNT,
t2.PRJCT_ID,
count(t2.RSRC_ID) as TBL2_RSRC_CNT
from
DATA_TABLE_1 t1
LEFT OUTER JOIN
DATA_TABLE_2 t2 on t1.PRJCT_ID = t2.PRJCT_ID
GROUP BY
t1.PRJCT_ID, t2.PRJCT_ID
order by 1
もちろん、そのように同じカウントを取得します。同じテーブルの列をカウントします(結合によって作成され、付与されますが、それでも長方形のテーブルです)。
あなたがしたいのはサブクエリを使うことです。最初にすべてのプロジェクトIDのリストを取得し(テーブルから、または問題の両方のテーブルを解析するユニオンから取得しますが、これはデータベースの正規化が不適切であることを示しています)、次にテーブルの数を個別にクエリします。
select p.ID,
(select count(*) from DATA_TABLE_1 t1 where t1.ID=p.ID) Count1,
(select count(*) from DATA_TABLE_2 t2 where t2.ID=p.ID) Count2
from projects p
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加