テーブルがあります
+-------+----------+------------+----------+---------+
| Plant | LineName | WorkCenter | Material | ProdQty |
+-------+----------+------------+----------+---------+
| x | xl | xl1 | y1 | 1 |
| x | xl | xl2 | y1 | 1 |
| x | xl | xl3 | y1 | 1 |
| x | xl | xl1 | y2 | 1 |
| x | xl | xl2 | y2 | 1 |
| x | xl | xl3 | y2 | 1 |
+-------+----------+------------+----------+---------+
私はさまざまなマテリアルの数を数え、LineNameに沿って数量を合計しようとしています。これにより、次のような結果が得られます。
+----------+------+---------+
| LineName | Cmat | ProdQty |
+----------+------+---------+
| xl | 2 | 2 |
+----------+------+---------+
代わりに、個別のカウント、合計、グループ化の組み合わせを使用すると、間違った結果が得られます。
+----------+------+---------+
| LineName | Cmat | ProdQty |
+----------+------+---------+
| xl | 2 | 6 |
+----------+------+---------+
これをどのように正しく行う必要がありますか?私は試しました
SELECT LineName, COUNT(DISTINCT(Material) as Cmat, SUM(ProdQty) as ProdQty
FROM table
GROUP BY LineName
しかし、それは望ましい結果を生み出しません。私はいくつかの同様のトピックについてスタック交換を探していましたが、それらは私の質問と一致しないようです。
コメントで確認すると、これが必要なようです
WITH Dist
AS (SELECT DISTINCT LineName,
Material,
ProdQty
FROM [table])
SELECT LineName,
COUNT(Material) AS Cmat,
SUM(ProdQty) AS ProdQty
FROM Dist
GROUP BY LineName