0

内部レポート用に、従業員 ID、休暇理由、休暇タイプ、および従業員名を取得したいと考えています。これらのデータを取得するための SQL クエリを作成したところ、いくつかの重複も取得しました。

一部の結合が欠落しているようです / 外部 ID マッピング部分が欠落しています

select
   h.id as employee_id,h.name as leave_reason,
   s.name,r.name as res_name
from 
   hr_holidays_status s,
   hr_holidays h,
   hr_employee e,
   resource_resource r
where 
   h.employee_id=e.id and 
   h.holiday_status_id=s.id and
   e.resource_id=r.id
order by 
   resource_id
4

1 に答える 1

1

クエリは正しいように見えますが、hr_holidaysテーブルに "Leave Requests" と "Leave Allocations" の両方が含まれているため、予期しない結果が得られる可能性があります。これは、休暇の割り当てによって従業員または従業員のカテゴリに利用できる休暇日数が増加し、休暇申請によって減少する複式簿記システムのようなものです。

クエリはおそらくこの違いを考慮に入れる必要があり、一部のレコードはまだ検証されていない可能性があるため、州などの他のフィールドでフィルター処理することもできます。

6.1 のhr.holidaysモデルの宣言を見ると、クエリで使用できる注目すべきフィールドがいくつかあることがわかります。

  • type:増加を表す割り当て( )、または減少を表す要求( ) にすることができます'add''remove'
  • holiday_type:従業員( 'employee') の場合、employee_id列は従業員を示します。または、カテゴリ( 'category') の場合、category_id列はカテゴリを示します。
  • state新規'draft')、承認待ち'confirm')、却下'refuse')、二次承認待ち'validate1')、承認済み'validate')、キャンセル済み('cancel'
于 2013-04-24T08:54:32.417 に答える