Select count(*) from
( Select a.* from 表A As a Inner join
(Select 产品名称,max(日期) As 日期 from 表A group by 产品名称 having count(产品名称) > 1) As b
on a.产品名称 = b.产品名称 where a.日期 = b.日期
) As c Inner join
(Select m.* from 表A As m Inner join
(Select a.产品名称,max(a.日期) As 日期 from 表A As a Inner join
(Select 产品名称,max(日期) As 日期 from 表A group by 产品名称 having count(产品名称) > 1) As b
on a.产品名称 = b.产品名称 where a.日期 < b.日期 group by a.产品名称
) As n
on m.产品名称 = n.产品名称 where m.日期 = n.日期
) As d
on c.产品名称 = d.产品名称 AND c.日期 > d.日期 And c.单价 < d.单价