SELECT tbl_dyi_ma_materialoutputdatail.char_materialID AS '物料代码',
tbl_dyi_ma_material.varc_description AS '物料名称',
tbl_dyi_ma_material.varc_type AS '规格型号' ,
tbl_dyi_ma_material.varc_standardunitID AS '单位',
sum(tbl_dyi_ma_materialoutputdatail.deci_endcount) AS '出库数量',
@UnitTime AS '单位时间',
@Frequency AS '比率限制',
sum(tbl_dyi_ma_materialoutputdatail.deci_endcount)/@UnitTime as '频次'
FROM tbl_dyi_ma_materialoutput
JOIN tbl_dyi_ma_materialoutputdatail
ON tbl_dyi_ma_materialoutput.char_outputID=tbl_dyi_ma_materialoutputdatail.char_outputID
LEFT JOIN tbl_dyi_ma_material
ON tbl_dyi_ma_materialoutputdatail.char_materialID=tbl_dyi_ma_material.char_materalID
WHERE tbl_dyi_ma_materialoutput.date_outputdate BETWEEN @StartDate and @EndDate
AND tbl_dyi_ma_material.char_materalID like @MaterID
AND tbl_dyi_ma_material.varc_description like @MaterName
AND tbl_dyi_ma_material.varc_type like @MaterType
group by tbl_dyi_ma_materialoutputdatail.char_materialID,tbl_dyi_ma_material.varc_description,
tbl_dyi_ma_material.varc_type,tbl_dyi_ma_material.varc_standardunitID
其中select里面有个sum(tbl_dyi_ma_materialoutputdatail.deci_endcount)/@UnitTime的信息,要求在where条件里面加上这个结果>100的计算,如何写?

解决方案 »

  1.   

    --这样?
    select * from (SELECT tbl_dyi_ma_materialoutputdatail.char_materialID AS '物料代码',
    tbl_dyi_ma_material.varc_description AS '物料名称',
    tbl_dyi_ma_material.varc_type AS '规格型号' ,
    tbl_dyi_ma_material.varc_standardunitID AS '单位',
    sum(tbl_dyi_ma_materialoutputdatail.deci_endcount) AS '出库数量',
    @UnitTime AS '单位时间',
    @Frequency AS '比率限制',
    sum(tbl_dyi_ma_materialoutputdatail.deci_endcount)/@UnitTime as '频次'
    FROM tbl_dyi_ma_materialoutput
    JOIN tbl_dyi_ma_materialoutputdatail
    ON tbl_dyi_ma_materialoutput.char_outputID=tbl_dyi_ma_materialoutputdatail.char_outputID
    LEFT JOIN tbl_dyi_ma_material
    ON tbl_dyi_ma_materialoutputdatail.char_materialID=tbl_dyi_ma_material.char_materalID
    WHERE tbl_dyi_ma_materialoutput.date_outputdate BETWEEN @StartDate and @EndDate
    AND tbl_dyi_ma_material.char_materalID like @MaterID
    AND tbl_dyi_ma_material.varc_description like @MaterName
    AND tbl_dyi_ma_material.varc_type like @MaterType
    group by tbl_dyi_ma_materialoutputdatail.char_materialID,tbl_dyi_ma_material.varc_description,
    tbl_dyi_ma_material.varc_type,tbl_dyi_ma_material.varc_standardunitID)a 
    where a.频次>100
      

  2.   

    select * from 
    (
    SELECT tbl_dyi_ma_materialoutputdatail.char_materialID AS '物料代码',
    tbl_dyi_ma_material.varc_description AS '物料名称',
    tbl_dyi_ma_material.varc_type AS '规格型号' ,
    tbl_dyi_ma_material.varc_standardunitID AS '单位',
    sum(tbl_dyi_ma_materialoutputdatail.deci_endcount) AS '出库数量',
    @UnitTime AS '单位时间',
    @Frequency AS '比率限制',
    sum(tbl_dyi_ma_materialoutputdatail.deci_endcount)/@UnitTime as '频次'
    FROM tbl_dyi_ma_materialoutput
    JOIN tbl_dyi_ma_materialoutputdatail
    ON tbl_dyi_ma_materialoutput.char_outputID=tbl_dyi_ma_materialoutputdatail.char_outputID
    LEFT JOIN tbl_dyi_ma_material
    ON tbl_dyi_ma_materialoutputdatail.char_materialID=tbl_dyi_ma_material.char_materalID
    WHERE tbl_dyi_ma_materialoutput.date_outputdate BETWEEN @StartDate and @EndDate
    AND tbl_dyi_ma_material.char_materalID like @MaterID
    AND tbl_dyi_ma_material.varc_description like @MaterName
    AND tbl_dyi_ma_material.varc_type like @MaterType
    group by tbl_dyi_ma_materialoutputdatail.char_materialID,tbl_dyi_ma_material.varc_description,
    tbl_dyi_ma_material.varc_type,tbl_dyi_ma_material.varc_standardunitID
    )t1
    where 频次 > 100
    括弧中的语句就是你提供的查询语句
      

  3.   

    能把语句直接写到原来的where里面吗?
      

  4.   

    只用一个select,我的意思是只在where条件里面加上这个条件就行了。
      

  5.   

    --这样?
    SELECT tbl_dyi_ma_materialoutputdatail.char_materialID AS '物料代码',
    tbl_dyi_ma_material.varc_description AS '物料名称',
    tbl_dyi_ma_material.varc_type AS '规格型号' ,
    tbl_dyi_ma_material.varc_standardunitID AS '单位',
    sum(tbl_dyi_ma_materialoutputdatail.deci_endcount) AS '出库数量',
    @UnitTime AS '单位时间',
    @Frequency AS '比率限制',
    sum(tbl_dyi_ma_materialoutputdatail.deci_endcount)/@UnitTime as '频次'
    FROM tbl_dyi_ma_materialoutput
    JOIN tbl_dyi_ma_materialoutputdatail
    ON tbl_dyi_ma_materialoutput.char_outputID=tbl_dyi_ma_materialoutputdatail.char_outputID
    LEFT JOIN tbl_dyi_ma_material
    ON tbl_dyi_ma_materialoutputdatail.char_materialID=tbl_dyi_ma_material.char_materalID
    WHERE tbl_dyi_ma_materialoutput.date_outputdate BETWEEN @StartDate and @EndDate
    AND tbl_dyi_ma_material.char_materalID like @MaterID
    AND tbl_dyi_ma_material.varc_description like @MaterName
    AND tbl_dyi_ma_material.varc_type like @MaterType
    group by tbl_dyi_ma_materialoutputdatail.char_materialID,tbl_dyi_ma_material.varc_description,
    tbl_dyi_ma_material.varc_type,tbl_dyi_ma_material.varc_standardunitID
    having (sum(tbl_dyi_ma_materialoutputdatail.deci_endcount)/@UnitTime)>100