求救:sql 查询有关问题

求救:sql 查询问题有个表记录如下GIDPHONENOSERVICEIDOBJECTIDOBJECTTYPE SUBDATE11380000000190387001102

求救:sql 查询问题
有个表记录如下
GIDPHONENO SERVICEIDOBJECTIDOBJECTTYPE SUBDATE
113800000001903870011027902010-4-1
213800000001903870011024512010-4-5
313800000002903870011024512010-4-4
413800000002903870011027902010-4-6
513800000003903870011027902010-4-6

要查询出所有手机号码第一次订购的产品类型(OBJECTTYPE)为0 的记录(根据subdate先后判断该号码的首次订购)
结果应该为
113800000001903870011027902010-4-1
513800000003903870011027902010-4-6


请教各位大侠,该如何写?
谢谢!

[解决办法]

SQL> select * from phone p1 where p1.objecttype=0
2 and subdate in (select min(subdate) from phone p2 where p2.phoneno=p1.phone
no);

GID PHONENO SERVICEID OBJECTID OBJECTTYPE SUBDATE
---------- ----------- ---------- ---------- ---------- --------------
1 13800000001 90387001 10279 0 01-4月 -10
5 13800000003 90387001 10279 0 06-4月 -10
[解决办法]

探讨

41380000000290387001102790 2010-4-6
这条怎么不选出来?

[解决办法]
SQL code
select t.* from tb t where OBJECTTYPE = 0 and SUBDATE = (select min(SUBDATE) from tb where PHONENO = t.PHONENO)select t.* from tb t where OBJECTTYPE = 0 and not exists (select 1 from tb where PHONENO = t.PHONENO and SUBDATE < t.SUBDATE)
[解决办法]
SQL code
--1.SELECT *  FROM order_rec a WHERE a.OBJECTTYPE = 0 AND       (PHONENO, SUBDATE) IN       (SELECT PHONENO, MIN(SUBDATE) SUBDATE FROM order_rec t GROUP BY t.PHONENO);--2.SELECT *  FROM order_rec a WHERE a.OBJECTTYPE = 0 AND       EXISTS (SELECT 1          FROM (SELECT PHONENO, MIN(SUBDATE) subdate FROM order_rec t GROUP BY t.PHONENO) b         WHERE b.PHONENO = a.PHONENO AND               b.SUBDATE = a.SUBDATE);--3.               SELECT *  FROM order_rec WHERE gid IN       (SELECT MIN(GID) KEEP(dense_rank FIRST ORDER BY SUBDATE) FROM order_rec GROUP BY PHONENO) AND       OBJECTTYPE = 0;