0

你好 Stackoverflow 的伟大人物!我一直在为以下挑战绞尽脑汁。

我有一个查询来计算特定销售的产品总和,这很容易。让我抓狂的挑战的第二部分是:

有些销售由“捆绑”组成,这意味着单个产品的总和不等于最终价格。为了使销售成为捆绑销售,它必须具有“电视”产品。电视产品可以自己出售并具有相关价格,但当它是捆绑产品的一部分时,价格是可变的。这是我到目前为止所拥有的:

定价矩阵——

    ProdDescription        ProductID    Rank A       Rank B   Rank C
               Phone            1        $229.00    $92.00  $18.00 
             Long Distance      2       $46.00  $46.00  $18.00 
            Internet 786K       3       $103.00     $84.00  $23.00 
            Internet 1.5M       4       $113.00     $94.00  $23.00 
            Internet 3M         5        $118.00    $99.00  $23.00 
            Internet 10M        6       $123.00     $104.00     $23.00 
            Internet 25M        7       $141.00     $113.00     $41.00 
            Ultra Internet      8       $188.00     $94.00  $23.00 
            TV                  9       $123.00     $95.00  $23.00 
            TV and Ultra Int             $311.00    $234.00     $141.00 
            TV and Phone                 $352.00    $91.00  $46.00 
            TV, Phone, & Long Dist        $398.00   $229.00     $137.00 
            TV, Phone, & any Int         $465.00    $268.00     $206.00 
            TV,Phone,Long Dist,&any Int  $515.00    $274.00     $229.00 

如您所见,我没有将产品ID分配给捆绑包,b / c我尝试为捆绑包创建单独的产品ID,甚至考虑使用php根据一组规则以编程方式分配产品ID,如果选择了单个产品,但随后我失去了最终计算/查询组成该捆绑/销售的单个产品的能力。

这是我想太多了吗?是否可以仅使用 SQL 或至少限制 PHP 端?

下表显示了该电视产品根据其所属捆绑包和排名计算得出的价格。我创建这个是因为我正在考虑使用 if 语句来引用这个表,如果该电视产品出现在一个级联计算中。

                                                  A      B     C 
     DoublePlay-Ultra Internet                    $123   $140    $118 
     DoublePlay-Phone                             $123   $(1)    $28 
     TriplePlay-Phone & Long Distance             $123   $91     $101 
    TriplePlay-Phone & Internet 786K               $133      $92     $165 
    TriplePlay-Phone & Internet 1.5 M             $123   $82     $165 
    TriplePlay-Phone & Internet 3M                 $118      $77     $165 
    TriplePlay-Phone & Internet 10M                $113      $72     $165 
     TriplePlay-Phone & Internet 25M              $95       $63      $147 
    TriplePlay-Phone & Ultra Internet             $48       $82      $165 
    QuadPlay-Phone & Long Dist & Inter 786K        $137      $52     $170 
    QuadPlay-Phone & Long Dist & Inter 1.5 M       $127      $42     $170 
    QuadPlay-Phone & Long Dist & Inter 3M          $122      $37     $170 
    QuadPlay-Phone & Long Dist & Inter 10M         $117      $32     $170 
    QuadPlay-Phone & Long Dist & Inter 25M         $99   $23     $152 
    QuadPlay-Phone & Long Dist&  Ultra Inter        $52      $42     $170 

这个问题太长了,所以我会停在那里,但是请问这有意义吗,有人有什么建议吗?太感谢了!

4

1 回答 1

1

考虑使用 9 位数字的产品 ID...我将按如下方式分配产品

当他们购买电视时,可以按如下方式分隔 9 位

第一个数字是1(只是为了让其他数字保持零第二个和第三个数字用于电视第四和第五个数字用于电话第六和第七个数字用于互联网第八和第九个数字用于长途......

例如:

单项价值 电视 1 10 00 00 00 电话 1 00 10 00 00 互联网 1 00 00 10 00 长途 1 00 00 00 10

假设如果他们订购多个

电视和电话 - 1 10 10 00 00 互联网和长途 - 1 00 00 10 10 电视和电话 互联网和长途 - 1 10 10 10 10

(每个电视、互联网、电话和长途可以有 10 种不同的组合)如果该字段中有 10 个以上的项目,您可以将其增加到 3 位数。请记住 - 整数只能容纳 10 位数字...

希望这能解决你的问题

于 2013-03-21T16:40:43.343 回答