统计物料入库价格是否有变化

栏目:云星空知识作者:金蝶来源:金蝶云社区发布:2024-09-16浏览:4

统计物料入库价格是否有变化

昨天一同事想看其他入库单物料成本价格是否有变化,想了下还是比较有意思。随手写下了下面的SQL代码

SELECT
    FMATERIALID,            
    FNAME,                  
    FPRICE,                
    CntByMaterialAndPrice,  
    CntByMaterial,          
    count(1) OVER (PARTITION BY FMATERIALID) AS cnt   --  物料价格次数
FROM (
         SELECT DISTINCT--a.fbillno, a.fdate,
                        S.FMATERIALID,           -- 物料内码
                        ML.FNAME,                -- 物料名称
                        S.FPRICE,                -- 成本价
                        S.CntByMaterialAndPrice, -- 成本价出现次数
                        S.CntByMaterial          -- 物料入库次数
         FROM (
                  SELECT 
                      A2.FID, A2.FMATERIALID, A2.FPRICE,
                      count(A2.FPRICE) OVER (PARTITION BY A2.FMATERIALID,A2.FPRICE) AS cntByMaterialAndPrice, -- 成本价出现次数
                      count(A2.FPRICE) OVER (PARTITION BY A2.FMATERIALID) AS cntByMaterial                    -- 物料入库次数
                  FROM T_STK_MISCELLANEOUSENTRY A2
              ) S
                  INNER JOIN T_STK_MISCELLANEOUS A ON S.FID = A.FID
                  INNER JOIN T_BD_MATERIAL M ON M.FMATERIALID = S.FMATERIALID
                  INNER JOIN T_BD_MATERIAL_L ML ON ML.FLOCALEID = 2052 AND ML.FMATERIALID = M.FMATERIALID
         WHERE CNTBYMATERIAL <> CNTBYMATERIALANDPRICE
     ) T
ORDER BY FMATERIALID

image.webp

解释一下比如上面第3行物料总共入库6次,21.86803 这个价格出现了3次, 有4个不同的入库价格。


另:

SQL Sever  里开窗函数里用不了distinct 外面又套了一层。 oacle 可以直接在分析函数里使用distinct 

count(distinct fprice) OVER (PARTITION BY FMATERIALID) AS CNT



统计物料入库价格是否有变化

昨天一同事想看其他入库单物料成本价格是否有变化,想了下还是比较有意思。随手写下了下面的SQL代码SELECT FMATERIALID, ...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息