1.select sum(recordMaterialPrice * recordMaterialAmount * (case recordImportOrExport when true then 1 else -1 end)) from recordItem2.select recordMaterialId, sum(recordMaterialAmount*(case recordImportOrExport when true then 1 else -1 end))as kcl, sum(recordMaterialPrice * recordMaterialAmount) / sum(recordMaterialAmount) as pjjg from recordItem

解决方案 »

  1.   

    1、select sum(case when recordImportOrExport=1 then recordMaterialAmount*recordMaterialPrice else -recordMaterialAmount*recordMaterialPrice end) as AllStorePrice
    from recordItem2、
    select recordMaterialId,sum(case when recordImportOrExport=1 then recordMaterialAmount else -recordMaterialAmount end) as StoreMaterialAmount,sum(case when recordImportOrExport=1 then recordMaterialAmount*recordMaterialPrice else -recordMaterialAmount*recordMaterialPrice end)/sum(case when recordImportOrExport=1 then recordMaterialAmount else -recordMaterialAmount end) as StoreAvgPrice
    from recordItem
    group by recordMaterialId说多一句,只从材料出入库单据表来计算库存在用的时间长后速度会很慢,应该考虑设计问题。
      

  2.   

    不知你均价的概念,是进库的均价,还是进出库均价,进出价是否相等。
    以下是进出库均价,供参考:
    select recordMaterialId,
    sum(recordMaterialAmount*(case when recordImportOrExport=1 then 1 else -1) as 库存,
    (sum(recordMaterialAmount*recordMaterialPrice*(case when recordImportOrExport=1 then 1 else -1))/(sum(recordMaterialAmount*(case when recordImportOrExport=1 then 1 else -1)) as 均价
     from recordItem group by recordMaterialId
      

  3.   

    试试看
    1.
    SELECT 总金额 = SUM(CASE 
                       WHEN recordImportOrExport = Export THEN recordMaterialAmount*recordMaterialPrice
                       WHEN recordImportOrExport = IMport THEN (-1)*recordMaterialAmount*recordMaterialPrice
                       END)
      FROM recordItem2.
    SELECT 库存量 = SUM(CASE 
                       WHEN recordImportOrExport = Export THEN (-1)*recordMaterialAmount
                       WHEN recordImportOrExport = Import THEN recordMaterialAmount 
                       END),
           库存的平均价格 = SUM(CASE 
                           WHEN recordImportOrExport = Import THEN recordMaterialPrice 
                           ELSE 0 
                           END)/SUM(CASE 
                                    WHEN recordImportOrExport = Import THEN 1
                                    ELSE 0 
                                    END)
     GROUP BY recordMaterialId
      

  4.   

    Yang_(扬帆破浪) 
    我其实还有一个表来存材料的信息比如库存,价格,但是很显然这是现在的数据,而项目需要能生成有某年某月的库存情况统计报表,我想出的方法只有通过单据计算,不知道你还有没有什么好办法?
      

  5.   

    to:Corny() 
       这么做,牺牲的应该不单单是存储空间,因为单据可能修改!