0

我的表格与库存项目、库存水平和所需数量有关。下面给出一个例子:

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 Server 实现这一目标?

提前感谢您的帮助和时间。

4

2 回答 2

2
SELECT part, MIN([Pieces In Stock]/[Pieces Required]) AS PossibleCompleteDolls
FROM tblName 
WHERE [Pieces Required] <> 0
GROUP BY part;

这里的 WHERE 子句只是为了防止被零除。

于 2015-09-28T15:01:03.603 回答
1

首先添加一列,每件可以构建多少个

 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
于 2015-09-28T15:00:53.453 回答