- を包みなさい値doens'tが存在して参加する動作していない3つのテーブルのための私のクエリでデータ
が表示されていません
- ウィンドウ関数を使用するように変更されたカウントで、人為的に結合によって膨らまされないようにしました
- left句として条件を結合するwhere句を移動した場合、NULL値を無効にして内部結合。
..MAYBE ...
SELECt r.req_id
, r.no_of_positions
, count(j.cand_id) over (partition by J.cand_ID) as no_of_closure
, count(cis.cand_id) over (partition by cis.cand_id) as no_of_CIS_CNT
FROM requirement r
LEFT join joined_candidates j
on r.req_id=j.req_id
LEFT join candidate_interview_schedule cis
on cis.req_id=r.req_id
and cis.interview_status='Interview Scheduled'
GROUP BY r.req_id, r.no_of_positions;
または多分...(私はj.cand_IDとcis.cand_IDが一意であると仮定できる場合)も1による人工数の増加を排除する:M結合
SELECt r.req_id
, r.no_of_positions
, count(distinct j.cand_id) as no_of_closure
, count(distinct cis.cand_id) as no_of_CIS_CNT
FROM requirement r
LEFT join joined_candidates j
on r.req_id=j.req_id
LEFT join candidate_interview_schedule cis
on cis.req_id=r.req_id
and cis.interview_status='Interview Scheduled'
GROUP BY r.req_id, r.no_of_positions;
結果が1つではないことを意味します。1 Where句の条件ですべてのデータが除外されます。結合が行われており、結合基準に一致するものが見つかりません。問題の内容を知るには十分な情報がありません。 where句の大文字と小文字の区別Where句を削除すると、カウント/結果が得られますか?もしそうなら、上の両方のピースとトリム? 'TRIM(UPPER(cis.interview_status))= UPPER( 'インタビュースケジュール')'参加について:3つのテーブルすべてにreq_IDが存在しますか?我々は2つのテーブルがどのように働いたのか分かりません。それは問題を分離するのに役立ちます。 – xQbert
req_idはテーブルによって異なりますが、req_idとnullが表示されるようにしたいのですが、値が他のテーブルと一致しない場合は –
2つのテーブルでLEFT結合を使用する必要があります。 2つのテーブルのうちの1つに存在していても、それはまだ表示されます。さらに、これらのテーブルに1:M relatioshipsがある場合は、パーティション上のカウントを使用する必要があるので、カウントが膨らんでしまいます。 – xQbert