我在查询方面遇到了问题:
priceDeatil
ProductCode BusinessUnit price DateFrom DateTo
10001 ORB 12.00 12-08-2011 31-09-2015
10001 ORB 21.00 01.08-2011 15-11-2011
10002 ORB 31.00 01.04-2011 15-08-2012
10003 ORB 42.00 01.05-2011 15-08-2012
我的问题是:
SELECT BusinessUnit, ProductCode, DateFrom, DateTo, Price
FROM WMPriceDetail
WHERE (DateFrom < 'Sep 01 2011') AND (DateTo > 'Sep 01 2011' OR DateTo = '')
ORDER BY ProductCode
这个返回
priceDeatil
ProductCode BusinessUnit price DateFrom DateTo
10001 ORB 12.00 12-08-2011 31-09-2015
10001 ORB 21.00 01.08-2011 15-11-2011
10002 ORB 31.00 01.04-2011 15-08-2012
10003 ORB 42.00 01.05-2011 15-08-2012
但是在这里,productCode 10001
返回了两条记录;那时我想要获取最大的日期,即 2011年12月08日
。
所以期望的结果应该是这样的:
priceDeatil
ProductCode BusinessUnit price DateFrom DateTo
10001 ORB 12.00 12-08-2011 31-09-2015
10002 ORB 31.00 01.04-2011 15-08-2012
10003 ORB 42.00 01.05-2011 15-08-2012
如何针对这种情况编写查询?