0

意図した以外のクエリの実行に問題があります。データベースにある各従業員 ID (pmt_id) の雇用主 ID (eh_id)。

現状の私のクエリは次のとおりです。

 SELECT *
  FROM employer_history table1
  WHERE eh_id =
    (
      SELECT eh_id
      FROM employer_history table2
      WHERE table1.eh_id = table2.eh_id
      group by table2.eh_id
    )
  and table1.eh_pmt_id in (131,3725)

私が得ているものは次のとおりです。

eh_id ¦ eh_pmt_id
123 ¦ 131
124 ¦ 131
125 ¦ 3725
126 ¦ 3725

私が期待しているのは:

eh_id ¦ eh_pmt_id

124 ¦ 131
126 ¦ 3725

私はそれを自分でどこにも持っていないので、これについて何か助けていただければ幸いです

乾杯

4

2 に答える 2

2

これには分析関数を使用できます。

SELECT *
FROM (  SELECT *, ROW_NUMBER() OVER(PARTITION BY peh_pmt_id ORDER BY eh_id DESC) Corr
        FROM employer_history 
        WHERE eh_pmt_id in (131,3725)) t1
WHERE Corr = 1
于 2012-04-30T16:25:36.177 に答える
1
SELECT peh_pmt_id, MAX(eh_id)
FROM employer_history
WHERE eh_pmt_id in (131,3725)
GROUP BY peh_pmt_id
于 2012-04-30T16:29:49.183 に答える