在庫、数量、値を持つ材料、プラントの組み合わせを持つSQL Server内に1つのテーブルがあります。これは、ソースシステムの形式で入ってくるデータのステージングテーブルです。これらすべてのレコードを同じ品目番号で集計する必要がありますが、異なるプラントは、平均数量と値を持つ品目コードに基づいて1つのレコードに集計する必要があります。材料/工場コードを持つすべてのレコードを単一レコードに集計する方法
これは私が作業しているテーブルです。
私はこの1つが作業に最も近いもので、多くの異なるSQL文を試してみました。注意、Where句のマテリアルに関するSQLプロンプトは、SQLステートメントにコピーを貼り付けることなく、別のマテリアルを見ることができるようにするためのものです。
SELECT
material
,plant
,AVG(unrestricted) AS Unrestricted
,AVG(valueunrestricted) AS valUnrestricted
,SUM(ValueUnrestricted/unrestricted) AS UnitValue
FROM
IBSCM01.stage.MB52
WHERE
unrestricted IS NOT NULL AND
unrestricted > 0 AND
material = :material
GROUP BY
material
,plant
,unrestricted
,valueunrestricted;
これは私が探していますどのような出力
で出力するすべての植物全体で集約された資料に基づいて単一のレコードです。マテリアルごとにグループ化すると、次のエラーがスローされます。
カラム 'IBSCM01.stage.MB52.Plant'は、集計関数またはGROUP BY句のいずれにも含まれていないため、選択リストでは無効です。
「GROUP BYマテリアル」の場合はどうなりますか – JamieD77
group by句に含まれていないフィールドごとに次のようになります。列 'IBSCM01.stage.MB52.Plant'は、集約関数またはGROUP BY句に含まれていないため、選択リストでは無効です。 – apesa
これで、SelectからPlantを削除しました。これが機能している可能性があります。私は戻っていくつかの数学を行う必要がありますが、目の第二のセットを提供するかもしれません – apesa