mysql求取最后两次价格上涨趋势

SELECT DISTINCT pp.物料编码, pp.物料名称, IFNULL(pp.规格型号, '') AS 规格型号            
    , pp.物料类型, pp.单位, max1.日期 AS 最新日期, max1.单价 AS 最新价, max2.日期 AS 上一次日期        
    , max2.单价 AS 上一次价        
    , (max1.单价 - max2.单价) / NULLIF(max2.单价, 0) AS 涨幅        
    , max3.日期 AS 上二次日期, max3.单价 AS 上二次价, min2.日期 AS 最初日期, min2.单价 AS 最初价        
FROM dbo.PurchasePrice pp            
    LEFT JOIN (        
        SELECT 物料编码, 日期, 单价    
        FROM dbo.PurchasePrice max11    
        WHERE 序号 IN (    
            SELECT MAX(序号) AS Expr1
            FROM dbo.PurchasePrice max12
            WHERE max11.物料编码 = 物料编码
        )    
    ) max1        
    ON pp.物料编码 = max1.物料编码        
    LEFT JOIN (        
        SELECT 物料编码, 日期, 单价    
        FROM dbo.PurchasePrice max21    
        WHERE 序号 IN (    
            SELECT MAX(序号) - 1 AS Expr1
            FROM dbo.PurchasePrice max22
            WHERE max21.物料编码 = 物料编码
        )    
    ) max2        
    ON pp.物料编码 = max2.物料编码        
    LEFT JOIN (        
        SELECT 物料编码, 日期, 单价    
        FROM dbo.PurchasePrice max31    
        WHERE 序号 IN (    
            SELECT MAX(序号) - 2 AS Expr1
            FROM dbo.PurchasePrice max32
            WHERE max31.物料编码 = 物料编码
        )    
    ) max3        
    ON pp.物料编码 = max3.物料编码        
    LEFT JOIN (        
        SELECT 物料编码, 日期, 单价    
        FROM dbo.PurchasePrice min21    
        WHERE 序号 IN (    
            SELECT MIN(序号) AS Expr1
            FROM dbo.PurchasePrice min22
            WHERE min21.物料编码 = 物料编码
        )    
    ) min2        
    ON pp.物料编码 = min2.物料编码    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值