SELECT b.料号,b.单价 FROM #cg22 a JOIN #cg22 b ON a.料号=b.料号 AND a.年份=b.年份 AND a.月份=b.上个月月份 --a表单价为上个月单价。b表单价为现单价 WHERE b.上个月月份 IS NOT NULL --存在上个月月份单价 UNION ALL SELECT a.料号,a.单价 FROM #cg22 a JOIN #cg22 b ON a.料号=b.料号 AND a.年份=b.年份 AND a.月份=b.上个月月份 --a表单价为上个月单价。b表单价为现单价 WHERE b.上个月月份 IS NULL --不存在上个月月份单价
0元,要钱不如去优化一波用友或者金蝶数据库。这些小事还要带价么。 你思路不错,但是其实可以直接子查询得到 SELECT a.料号, isnull(select top 1 单价 from #cg22 where 料号=a.料号 and 日期<a.日期 order by 年份 desc),a.单价) 单价 FROM #cg22 a 而且表中直接有日期了,直接用日期不香么?