用友U8获取物料当月采购的最高价与最低价

--获取物料当月采购的最高价与最低价
CREATE VIEW V_Quick_Price
AS
SELECT MaxT.iYear AS iYear,
       MaxT.iPeriod AS iPeriod,
       MaxT.cInvCode,
       MaxT.iTaxPrice AS MaxPrice,
       MaxT.iQuantity AS MaxQuantity,
       MinT.iTaxPrice AS MinPrice,
       MinT.iQuantity AS MinQuantity
FROM
(

    --最高价
    SELECT A.iYear,
           A.iPeriod,
           A.cInvCode,
           A.iQuantity,
           A.iTaxPrice,
           A.iSum
    FROM
    (
        SELECT ROW_NUMBER() OVER (PARTITION BY PO_Podetails.cInvCode,
                                               YEAR(dPODate),
                                               MONTH(dPODate)
                                  ORDER BY iTaxPrice DESC
                                 ) AS id,
               YEAR(dPODate) AS iYear,
               MONTH(dPODate) AS iPeriod,
               cInvCode,
               iQuantity,
               iTaxPrice,
               iSum
        FROM dbo.PO_Pomain
            JOIN dbo.PO_Podetails
                ON PO_Podetails.POID = PO_Pomain.POID
                   AND iSum IS NOT NULL
    ) A
    WHERE A.id = 1
) MaxT
    JOIN
    (
        --最低价
        SELECT A.iYear,
               A.iPeriod,
               A.cInvCode,
               A.iQuantity,
               A.iTaxPrice,
               A.iSum
        FROM
        (
            SELECT ROW_NUMBER() OVER (PARTITION BY PO_Podetails.cInvCode,
                                                   YEAR(dPODate),
                                                   MONTH(dPODate)
                                      ORDER BY iTaxPrice ASC
                                     ) AS id,
                   YEAR(dPODate) AS iYear,
                   MONTH(dPODate) AS iPeriod,
                   cInvCode,
                   iQuantity,
                   iTaxPrice,
                   iSum
            FROM dbo.PO_Pomain
                JOIN dbo.PO_Podetails
                    ON PO_Podetails.POID = PO_Pomain.POID
                       AND iSum IS NOT NULL
        ) A
        WHERE A.id = 1
    ) MinT
        ON MinT.cInvCode = MaxT.cInvCode
           AND MinT.iPeriod = MaxT.iPeriod
           AND MinT.iYear = MaxT.iYear;

--月平均单价

SELECT Temp.cInvCode,
       Temp.iQuantity,
       Temp.iSum,
       Temp.iSum / Temp.iQuantity AS price,
       Temp.iYear,
       Temp.iPeriod
FROM
(
    SELECT cInvCode,
           SUM(ISNULL(A.iQuantity, 0)) AS iQuantity,
           SUM(ISNULL(A.iSum, 0)) AS iSum,
           A.iYear,
           A.iPeriod
    FROM
    (
        SELECT YEAR(dPODate) AS iYear,
               MONTH(dPODate) AS iPeriod,
               cInvCode,
               iQuantity,
               iSum
        FROM dbo.PO_Pomain
            JOIN dbo.PO_Podetails
                ON PO_Podetails.POID = PO_Pomain.POID
                   AND iSum IS NOT NULL
    ) A
    GROUP BY A.cInvCode,
             A.iYear,
             A.iPeriod
) Temp 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值