一个SQL语句

PCMB025H的唯一索引是coil_no,last_prod_date,要求选取coil_no唯一的资料,并且多笔coil_no相同的资料中取last_prod_date最大的一笔






















PCMB025H



查询结果


coil_no last_prod_date coil_weight

coil_no last_prod_date coil_weight

a          20090211 100

b          20090213 110

b          20090213 110

a          20090213 90

a          20090213 90

c          20090213 120

c          20090213 120

d          20090213 95

d          20090211 100






d          20090213 95


























第一种:

(select a.coil_no,a.last_prod_date,b.coil_weight from
 (select coil_no,max(last_prod_date) last_prod_date from pcmb025h
 group by coil_no having count(coil_no)>1) a
 inner join
 (select * from pcmb025h) b
 on a.coil_no=b.coil_no and a.last_prod_date=b.last_prod_date)
 union
 (select * from pcmb025h where coil_no in
 (select coil_no from pcmb025h group by coil_no having count(*) = 1)
 )

第二种:
SELECT b.coil_no,b.last_prod_date,a.coil_weight FROM
(SELECT * FROM pcmb025h) a,
(SELECT coil_no,MAX(last_prod_date) AS last_prod_date
  FROM pcmb025h p GROUP BY p.coil_no) b
WHERE a.coil_no=b.coil_no AND a.last_prod_date=b.last_prod_date











































posted @ 2009-05-15 19:24  济阳补丁  阅读(192)  评论(0编辑  收藏  举报