0

假设我有一个表格颜色,其中包含 MainColor(绿色、蓝色)、Tone(44,17)、Brand(Mybrand、Yourbrand 等)、Type(Standard、Special)和 Availability 我需要根据 a 显示请求如:

正在寻找3x 绿调44、8x绿调 175x 蓝调 44

它存储在一个像这样的数组中:

Array
(
    [0] => Array
        (
            [MainColor] => Green
            [Tone] => 44
            [Needed] => 3
        )
    [1] => Array
        (
            [MainColor] => Blue
            [Tone] => 44
            [Needed] => 5
        )
    [2] => Array
        (
            [MainColor] => Green
            [Tone] => 17
            [Needed] => 8
        )

)

就像是

有 3x Green Tone 44(1x MyBrand Normal 1x Mybrand Special 和 1x Yourbrand Standard)

和 8x Green Tone 17(1x Herbrand Special 2x Herbrand Standard、4x Ourbrand Standard 和 1x Hisbrand Special)

和 5x Blue Tone 44(3Mybrand Special 和 2x Yourbrand Special)

可用颜色

我知道我可以通过以下方式实现前两条语句:

SELECT *
    FROM Colors  
    WHERE MainColor IN (array['MainColor']) AND Tone IN (array['Tone'])

那么第三个需要相加比较(大于或等于需要量)呢?

SELECT *
    FROM Colors  
    WHERE MainColor IN (array['MainColor']) AND Tone IN (array['Tone']) AND SUM(Colors.Availability) IN >= (array['Needed'])
4

1 回答 1

1

我认为您需要找到所有具有该特定颜色/色调的品牌,因此请忽略数量,如果有的话就列出它们。

然后让用户从网页中的每个品牌中选择他们想要的数量。在这一点上,您可以强制他们选择的品牌的总和是他们已经输入的(可以在提交之前做一些 JS 来执行此操作),或者可以简单地让他们拥有任意数量的品牌。

唯一的困难是,如果为两个人提供相同的颜色/色调,并且他们都试图订购比您更多的库存。然后,您必须检查他们何时最终订购库存是否仍然存在。

于 2017-05-21T15:17:51.977 回答