4

次の例のようなレポートを Oracle APEX で生成する必要があります。

 PROJECT     OPEN_ISSUE_COUNT     CLOSED_ISSUE_COUNT
 W-1         3                    1
 X-2         1                    2
 Y-3         5                    3
 Z-4         2                    1

WhereOPEN_ISSUE_COUNTおよびは、ステートメントCLOSED_ISSUE_COUNTによって生成されます。SQL COUNTクエリ対象のテーブルは次のようになります。

 ISSUE_#     ISSUE_STATUS     ASSOCIATED_PROJECT
 1A          OPEN             W-1
 1B          OPEN             W-1
 1C          OPEN             W-1
 2A          CLOSED           W-1
 2B          OPEN             X-2
 2C          CLOSED           X-2
 3A          CLOSED           X-2 
 etc...

OPEN_ISSUE_COUNTしたがって、1 つのクエリで、 forとCLOSED_ISSUE_COUNTwhereISSUS_STATUS = 'OPEN'と と をISSUS_STATUS = 'CLOSED'それぞれカウントする必要がありますGROUP BY ASSOCIATED_PROJECT

それは理にかなっていますか?明らかに、2 つのステータスのうちの 1 つでこれを簡単に行うことができますが、ここで説明していることに対する実行可能な解決策を見つけることができませんでした。私はここや他の場所でいくつかのものをオンラインで調べましたが、似たようなものは見当たりませんでした. 皆さんの考えを教えてください。ありがとう!

4

3 に答える 3

4

これを行う別の方法は、新しいPIVOT機能を使用することです。

with issue_data as (
  select associated_project as project, issue_status from issues
)
select project, open, closed
  from issue_data
       pivot ( count(*) for issue_status in ('OPEN' as open, 'CLOSED' as closed) )
于 2012-06-11T14:58:14.170 に答える
1
select
sum(case when status = 'open' then 1 else 0 end) as open,
sum(case when status = 'closed' then 1 else 0 end) as closed
from table
where  <other restrictions>
于 2012-06-11T14:48:55.627 に答える