SQL 服务器查询与库存分析的分组和计数相关
SQL Server query related to grouping and counting for inventory analysis
我的 table 关注库存项目、库存水平和所需数量。举例如下:
Part Sub Part Pieces Required Pieces In Stock
Barbie Legs 2 1000
Barbie Arms 2 5000
Barbie Head 1 20
Barbie Torso 1 40000
Dora Legs 2 1000
Dora Arms 2 5000
Dora Head 1 0
Dora Torso 1 40000
我希望最终结果如下所示:
Part No: of dolls that can be built
Barbie 20
Dora 0
所以逻辑是我们需要最少数量的每个部分来制作一个完整的娃娃。如果连一个所需的零件都没有库存,那么就无法制作娃娃。当我们需要 2 个某些部分而只需要 1 个其他部分时,复杂性就来了。
如何使用 SQL 服务器实现此目的?
提前感谢您的帮助和时间。
首先添加一列每件可以建造多少件
SELECT *, CAST([Pieces In Stock]/[Pieces Required] as INTEGER) AS canmake
FROM TABLE
然后按部分分组并取最小值
SELECT Part, min(canmake) as [No: of dolls that can be built]
FROM (
SELECT *, CAST([Pieces In Stock]/[Pieces Required] as INTEGER) AS canmake
FROM TABLE
WHERE [Pieces Required] != 0
) T
GROUP BY Part
SELECT part, MIN([Pieces In Stock]/[Pieces Required]) AS PossibleCompleteDolls
FROM tblName
WHERE [Pieces Required] <> 0
GROUP BY part;
这里的WHERE子句只是为了防止被零除。
我的 table 关注库存项目、库存水平和所需数量。举例如下:
Part Sub Part Pieces Required Pieces In Stock
Barbie Legs 2 1000
Barbie Arms 2 5000
Barbie Head 1 20
Barbie Torso 1 40000
Dora Legs 2 1000
Dora Arms 2 5000
Dora Head 1 0
Dora Torso 1 40000
我希望最终结果如下所示:
Part No: of dolls that can be built
Barbie 20
Dora 0
所以逻辑是我们需要最少数量的每个部分来制作一个完整的娃娃。如果连一个所需的零件都没有库存,那么就无法制作娃娃。当我们需要 2 个某些部分而只需要 1 个其他部分时,复杂性就来了。 如何使用 SQL 服务器实现此目的?
提前感谢您的帮助和时间。
首先添加一列每件可以建造多少件
SELECT *, CAST([Pieces In Stock]/[Pieces Required] as INTEGER) AS canmake
FROM TABLE
然后按部分分组并取最小值
SELECT Part, min(canmake) as [No: of dolls that can be built]
FROM (
SELECT *, CAST([Pieces In Stock]/[Pieces Required] as INTEGER) AS canmake
FROM TABLE
WHERE [Pieces Required] != 0
) T
GROUP BY Part
SELECT part, MIN([Pieces In Stock]/[Pieces Required]) AS PossibleCompleteDolls
FROM tblName
WHERE [Pieces Required] <> 0
GROUP BY part;
这里的WHERE子句只是为了防止被零除。