我有一个包含以下数据的表:
- 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但几个小时后没有得到任何好结果:(
答案 0 :(得分: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>