字段(供应商编号,批次号,合格数,不合格数,检验结果,年月,季度,。)
表名(FRM_IQC_物料到货登记)
想写个函数实现,我传3个参数(供应商编号,年度,季度)
函数自动算出这个供应商的季度批次合格率公式是 合格率=(合格的批次/总批次)*100%    合格批次=Count(distinct 批次号)   不合格批次=Count(distinct 批次号)  WHERE 检验结果=合格

解决方案 »

  1.   

    --select 供应商编号,年月,季度,count(case when 有点问题:批次号,合格数,不合格数
    ----- 怎么知道这个批次是合格的呀
      

  2.   

    自己写函数吧
    select 供应商编号,年月,季度,合格率 = ltrim((100*合格数)/(合格+不合格数)) + '%',
    不合格率 = ltrim((100*不合格数)/(合格+不合格数)) + '%'
    from 
    (
    select 供应商编号,年月,季度,
    count(case when 检验结果 = '合格' then 1 else 0 end) as 合格数,
    count(case when 检验结果 = '不合格' then 1 else 0 end) as 不合格数
    from tb
    group by 供应商编号,年月,季度
    ) a
    where a.供应商编号=@s1 and a.年月= @s2 and a.季度 = @s3