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 回答