trySelect 
物料编号,
SUM((期初数量+期末数量)*1.0/2)/Count(*)
From 库存表
Group By 物料编号

解决方案 »

  1.   

    Create Table 库存表
    (物料编号 Char(3),
     名称 Varchar(10),
     单位 Varchar(10),
     期初数量 Int,
     期末数量 Int,
     月份 Char(6))
    Insert 库存表 Select    '001',          'a',    't',            50  ,     30  ,          '200605'
    Union All Select  '001',          'a',    't',            30  ,     100,          '200606'
    Union All Select  '001',          'a',    't',            100,     120,          '200607'
    Go
    Select 
    物料编号,
    SUM((期初数量+期末数量)*1.0/2)/Count(*) As [avg]
    From 库存表
    Group By 物料编号
    GO
    Drop Table 库存表
    --Result
    /*
    物料编号 avg
    001 71.666666
    */
      

  2.   

    paoluo(一天到晚游泳的鱼) :我作了一个CROSSTAB的数据窗口,
    现在平均库存量计算出来了怎么放到最后啊.
    数据窗口显示如下:
                             月份           平均库存量
    物料编号  名称  单位   数量 金额   200605    200606     
      

  3.   

    沒懂你的意思。Select 
    物料编号,
    SUM((期初数量+期末数量)*1.0/2)/Count(*) As [平均库存量]
    From 库存表
    Group By 物料编号
    這不就是最後嗎??
    或者你的意思是前面那幾個字段也要得到??
      

  4.   

    我前面的字段在CROSSTAB数据窗口得到了,现在问题是你帮我计算出来的我怎么插入到数据窗口啊?
      

  5.   

    我用的pb9.0+sql2000.
    用的CROSSTAB类型数据窗口.但是这种数据窗口加计算列很麻烦.所以我想自己计算出来插入到数据窗口中.(重新建一数据窗口显示出来也可以.
      

  6.   

    谢谢你.帮我再写一个计算周转天数的SQL语句吧.
    库存表:
    物料编号  名称  单位  期初数量   供应数量 期末数量  月份
    001    a    t            50        20  30            200605
     001          a     t          30         0   100            200606001         a         t        100         0   120           200607  
    公式为:
    这是3个月的数据,每个月按30天计算.
    原材料周转天数=(平均库存*30*3)/3个月供应数量
      

  7.   

    try
    Select 
    物料编号,
    SUM((期初数量+期末数量)*1.0/2)*30/SUM(供应数量) As 原材料周转天数
    From 库存表
    Group By 物料编号
      

  8.   

    我也是这样做的,但是遇到SUM(供应数量为0的),不给检索.
      

  9.   

    Select 
    物料编号,
    (Case When SUM(供应数量)=0 Then 0 Else SUM((期初数量+期末数量)*1.0/2)*30/SUM(供应数量) End) As 原材料周转天数
    From 库存表
    Group By 物料编号