取最大日期的值的问题?~在线等
(无列名) hh tjbh dwmc
2012-01-06 00:00:00.000 100003 0000 盘点录入
2011-12-27 00:00:00.000 100008 期初录入
2011-12-30 00:00:00.000 100011 kh0001 山东康惠医药有限公司
2012-05-17 00:00:00.000 100011 SDRZ001 山东瑞中医药有限公司
2012-01-06 00:00:00.000 100011 0000 盘点录入
2011-12-27 00:00:00.000 100011 期初录入
2012-02-11 00:00:00.000 100015 ytlhzs0001 烟台联合众生医药有限公司(代销)(王巍)
2012-01-16 00:00:00.000 100015 AHS004 安徽省华仁医药经营有限公司
2012-01-21 00:00:00.000 100015 10054 河北瑞健盛康医药有限公司
2012-01-21 00:00:00.000 100015 0000 盘点录入
2011-12-27 00:00:00.000 100015 期初录入
我的语句如下,我已经指定max了,为什么后面还出来那么多别的日期的。
SQL code
SELECT MAX(kdrq),hh,tjbh,dwmc FROM rkdzk GROUP BY hh,tjbh,dwmc ORDER BY hh
最后达到如下要求:只保留一条最大日期下的数据
(无列名) hh tjbh dwmc
2012-01-06 00:00:00.000 100003 0000 盘点录入
2011-12-27 00:00:00.000 100008 期初录入
2012-05-17 00:00:00.000 100011 SDRZ001 山东瑞中医药有限公司
2012-02-11 00:00:00.000 100015 ytlhzs0001 烟台联合众生医药有限公司(代销)(王巍)
另:如果最大日期的 dwmc 是盘点录入,就取第二日期的数据。
------解决方案--------------------SQL code
select kdrq,hh,tjbh,dwmc
from rkdzk t1
where kdrq=(select max(kdrq) from rkdzk t2
where t1.hh=t2.hh and t1.dwmc=t2.dwmc)
--where t1.hh=t2.hh and t1.dwmc=t2.dwmc此处有几个条件自已去关联
------解决方案--------------------
SQL code
SELECT
kdrq,hh,tjbh,dwmc
FROM
rkdzk A
WHERE
kdrq=(SELECT MAX(kdrq) FROM rkdzk B
WHERE A.hh=B.hh)
--或者:
SELECT
kdrq,hh,tjbh,dwmc
FROM
rkdzk A
WHERE
NOT EXISTS(
SELECT 1 FROM rkdzk B
WHERE A.hh=B.hh
AND A.kdrq<B.kdrq
)
--我需要给楼主说一句,你在非技术版的帖子我没半点瞧不起你的意思,更没半点侮辱你的意思,我也没说一句攻击你的话,我引用别人的只是觉得那会说的不尊重人。那猴子是笑么?分明就是觉得很无奈,明白吗?