1

我有一个包含以下数据的表:

- DATEURM     IDV    UNID
- 2013-02-02  15259  W0L0TGF0572 
- 2013-02-02  15259  W0L0TGF0572
- 2013-02-02  15674  ZFA18503158 
- 2013-02-02  16157  ZFA18503158
- 2013-02-02  16157  ZFA18503158
- ...

我使用此查询从中选择数据:

SELECT * FROM TBL order_date WHERE DATEURM BETWEEN DATE 'today'+10 AND DATE 'today'+40 order by DATEURM asc ROWS 50

我想要的是不要得到 UNID 列的重复行,结果类似于:

- DATEURM  IDV UNID
- 2013-02-02  15259  W0L0TGF0572 
- 2013-02-02  16157  ZFA18503158
- ...

我玩了 DISTINCT 和 GROUP BY,但几个小时后没有得到任何好的结果:(

4

1 回答 1

1

从您的评论中,您说现在您想要每个 unid 一行,并且您不介意获得哪些其他值,所以试试这个:

SELECT unid, min(dateurm) dateurm, min(idv) idv 
  FROM order_date
 WHERE DATEURM BETWEEN current_date + 10 AND current_date + 40
 group by unid
 order by 2

在我得到的相同数据上:

UNID        DATEURM             IDV
=========== ========== ============ 
W0L0TGF0572 2013-02-02        15259
ZFA18503158 2013-02-02        15674

SQL>
于 2013-01-23T07:40:44.013 回答