各位,我想根据存货编码,取采购入库单上的采购单价(就取最大单价就行了),然后根据材料出库单数量*单价算出出库金额,这个只是大概了解下金额即可。
select rdrecords11.cInvCode,rdrecords11.iQuantity,rdrecord11.dDate,rdrecord11.cDepCode,Inventory.cInvName,Inventory.cInvStd,b.iUnitCost,rdrecords11.iQuantity*b.iUnitCost cost from rdrecords11
inner join rdrecord11 on rdrecord11.ID=rdrecords11.id 
inner join Inventory on rdrecords11.cInvCode=Inventory.cInvCode 
inner join (select rdrecords01.iUnitCost,rdrecords01.cInvCode from rdrecords01 inner join (select cInvCode,max(iUnitCost) c from rdrecords01 group by cInvCode) a on rdrecords01.cInvCode=a.cInvCode ) b on rdrecords11.cInvCode=b.cInvCode 
where MONTH(dDate)=MONTH(GETDATE())
order by rdrecord11.dDate这样显示出来一个存货还是会取出多个单价
cInvCode iQuantity dDate cDepCode cInvName cInvStd iUnitCost cost
01010002 -210 2018-08-05 09 金刚线母线 70um*210km 16.24 -3410.25
01010002 -210 2018-08-05 09 金刚线母线 70um*210km 16.24 -3410.25
01010002 -210 2018-08-05 09 金刚线母线 70um*210km 10.26 -2153.87
01010002 -210 2018-08-05 09 金刚线母线 70um*210km 16.24 -3410.25
01010002 -210 2018-08-05 09 金刚线母线 70um*210km 16.24 -3410.25
01010002 -210 2018-08-05 09 金刚线母线 70um*210km 16.24 -3410.4
01010002 -210 2018-08-05 09 金刚线母线 70um*210km 13.68 -2871.79
01010002 -210 2018-08-05 09 金刚线母线 70um*210km 12.82 -2692.41
01010002 -210 2018-08-05 09 金刚线母线 70um*210km 12.82 -2692.41
01010002 -210 2018-08-05 09 金刚线母线 70um*210km 10.26 -2153.76
01010002 -210 2018-08-05 09 金刚线母线 70um*210km 12.82 -2692.31
01010002 -210 2018-08-05 09 金刚线母线 70um*210km 16.24 -3410.25
01010002 -210 2018-08-05 09 金刚线母线 70um*210km 10.26 -2153.76
01010002 -210 2018-08-05 09 金刚线母线 70um*210km 10.26 -2153.76
01010002 -210 2018-08-05 09 金刚线母线 70um*210km 16.24 -3410.25
01010002 -210 2018-08-05 09 金刚线母线 70um*210km 16.24 -3410.25
01010002 -210 2018-08-05 09 金刚线母线 70um*210km 16.24 -3410.25
01010002 -210 2018-08-05 09 金刚线母线 70um*210km 12.82 -2692.31

解决方案 »

  1.   

    试试下面的,
    select rdrecords11.cInvCode,rdrecords11.iQuantity,rdrecord11.dDate,rdrecord11.cDepCode,Inventory.cInvName,Inventory.cInvStd,b.iUnitCost,rdrecords11.iQuantity*b.iUnitCost cost from rdrecords11
     inner join rdrecord11 on rdrecord11.ID=rdrecords11.id 
     inner join Inventory on rdrecords11.cInvCode=Inventory.cInvCode 
     inner join (select a.c as iUnitCost,rdrecords01.cInvCode from rdrecords01 inner join (select cInvCode,max(iUnitCost) c from rdrecords01 group by cInvCode) a on rdrecords01.cInvCode=a.cInvCode ) b on rdrecords11.cInvCode=b.cInvCode 
     where MONTH(dDate)=MONTH(GETDATE())
     order by rdrecord11.dDate