次のテーブルがあります。
ユーザー・グループ
usergrp_id bigint Primary Key
usergrp_name text
ユーザー
user_id bigint Primary Key
user_name text
user_usergrp_id bigint
user_loc_id bigint
user_usergrp_id
user_group テーブルからの対応する ID を
user_loc_id
持ち、branch テーブルからの対応する ID (branch_id) を持ちます。
ブランチ
branch_id bigint Primary Key
branch_name text
branch_type smallint
branch_type
デフォルトでは 1 に設定されています。ただし、1 から 4 までの任意の値が含まれる場合があります。
ユーザー_プロジェクト
proj_id bigint Primary Key
proj_name text
proj_branch_id smallint
proj_branch_id
ブランチ テーブルからの対応する id(branch_id) を持っています。
ユーザー承認
appr_id bigint Primary Key
appr_prjt_id bigint
appr_status smallint
appr_approval_by bigint
appr_approval_by
user テーブルからの対応する id(user_id)
appr_status
には、単一の 10、20、30 などのさまざまなステータス値が含まれる場合があります。appr_prjt_id
ユーザー・グループ
usergrp_id | usergrp_name
-------------------------
1 | Admin
2 | Manager
ユーザー
user_id | user_name | user_usergrp_id |user_loc_id
---------------------------------------------------
1 | John | 1 | 1
2 | Harry | 2 | 1
ブランチ
branch_id | branch_name | branch_type
-------------------------------------
1 | location1 | 2
2 | location2 | 1
3 | location3 | 4
4 | location4 | 2
5 | location4 | 2
ユーザー_プロジェクト
proj_id | proj_name | proj_branch_id
------------------------------------
1 | test1 | 1
2 | test2 | 2
3 | test3 | 1
4 | test4 | 3
5 | test5 | 1
6 | test5 | 4
ユーザー承認
appr_id | appr_prjt_id | appr_status | appr_approval_by
-------------------------------------------------------
1 | 1 | 10 | 1
2 | 1 | 20 | 1
3 | 1 | 30 | 1
4 | 2 | 10 | 2
5 | 3 | 10 | 1
6 | 3 | 20 | 2
7 | 4 | 10 | 1
8 | 4 | 20 | 1
条件:出力はfor eachのMAX()
値を取り、それをカウントする必要があります。appr_status
appr_prjt_id
つまり、上記の表では、10、20、30 のappr_prjt_id=1
3 つの異なるステータスがあります。そのカウントは、特定のユーザー グループに対応する、出力の 30 に対応するステータス (ステータス 10 および 20 ではなく) に対してのみ表示する必要がありますbranch_name
。同様に、フィールド内の他の各 ID についてもappr_prjt_id
望ましい出力:
10 | 20 | 30
------> Admin 0 | 1 | 1
|
location1
|
------> Manager 1 | 1 | 0
どうやってやるの?