oracle?mysql?SqlServer?
----------------------
with tablea as (
select '1月' [LYDATE],14.5 [FUNITACTUALCOST],'A' [物料] union ALL
select '4月' [LYDATE],14.5 [FUNITACTUALCOST],'A' [物料] union ALL
select '5月' [LYDATE],14.213 [FUNITACTUALCOST],'A' [物料] union ALL
select '9月' [LYDATE],16 [FUNITACTUALCOST],'A' [物料] union ALL
select '10月' [LYDATE],16 [FUNITACTUALCOST],'A' [物料] union ALL
select '12月' [LYDATE],0 [FUNITACTUALCOST],'A' [物料] union ALL
select '1月' [LYDATE],14.5 [FUNITACTUALCOST],'b' [物料] union ALL
select '4月' [LYDATE],14.5 [FUNITACTUALCOST],'b' [物料] union ALL
select '5月' [LYDATE],14.213 [FUNITACTUALCOST],'b' [物料] union ALL
select '9月' [LYDATE],16 [FUNITACTUALCOST],'b' [物料] union ALL
select '10月' [LYDATE],0 [FUNITACTUALCOST],'b' [物料] union ALL
select '12月' [LYDATE],0 [FUNITACTUALCOST],'b' [物料]
)
SELECT *,(CASE WHEN FUNITACTUALCOST=0 THEN (SELECT TOP 1 FUNITACTUALCOST FROM tablea B WHERE b.物料=tablea.物料 and B.FUNITACTUALCOST<>0 AND REPLACE(B.LYDATE,'月','')*1<REPLACE(tablea.LYDATE,'月','')*1 ORDER BY REPLACE(B.LYDATE,'月','')*1 DESC ) ELSE FUNITACTUALCOST END) [NEW_] FROM tablea
