列の数が常に固定されるとは限らない動的なクロス集計クエリを作成する必要があるため、大文字と小文字を区別してハードコードすることはできません。私はグーグルで検索しましたが、SQL Serverで同じことをすることについてのブログを見つけましたが、Oracleで同じことをすることについてのそのような記事のブログがあるかどうか疑問に思っていました. SQL Server で作業していません。Fol は私の問題に関する情報です。
私が書いたハードコードされたクロス集計クエリ
SELECT
LU_CITY.CITY_NAME as "City",
count(CASE WHEN emp.emp_category='Admin' THEN emp.emp_id END) As "Admins",
count(CASE WHEN emp.emp_category='Executive' THEN emp.emp_id END) As "Executive",
count(CASE WHEN emp.emp_category='Staff' THEN emp.emp_id END) As "Staff",
count(emp.emp_id) As "Total"
FROM emp, LU_CITY
where
LU_CITY.CITY_ID = EMP.CITY_ID(+)
group by
LU_CITY.CITY_NAME, LU_CITY.CITY_ID
order by
LU_CITY.CITY_ID
テーブル
emp (emp_id, emp_name, city_id, emp_category)
lu_city(city_id,city_name)
クエリ結果
------------------------------------------
City | Admins | Executive | Staff . . . .
------------------------------------------
A | 1 | 2 | 3
B | 0 | 0 | 4
. | . | . | .
.
.
emp_category は、ユーザーが必要に応じて追加できます。クエリは、そのようなカテゴリをすべて動的に生成する必要があります。
この点に関するガイダンスをいただければ幸いです。
前もって感謝します