首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Mysql,当变量依赖于其他选择时计算sum()

Mysql,当变量依赖于其他选择时计算sum()
EN

Stack Overflow用户
提问于 2013-03-21 22:25:46
回答 1查看 119关注 0票数 0

大家好,Stackoverflow的伟大的人们!我一直在为下面的挑战绞尽脑汁。

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

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

定价矩阵-

代码语言:javascript
复制
    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 

正如你所看到的,我还没有将productID分配给捆绑包,b/c我尝试为捆绑包创建一个单独的产品id,甚至考虑过使用php在选择单个产品的情况下根据一组规则以编程方式分配产品id,但这样我就失去了最终统计/查询组成捆绑/销售的单个产品的能力。

我是不是想多了?有没有可能只利用SQL,或者至少限制PHP端?

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

代码语言:javascript
复制
                                                  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 

这个问题太长了,所以我就到此为止,但这有什么意义吗,有没有人有什么建议?非常感谢!

EN

回答 1

Stack Overflow用户

发布于 2013-03-22 00:40:43

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

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

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

例如:

个人物品价值电视将是1 10 00 00 00电话将是1 00 10 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个,您可以将其增加到3位数。记住- Integer只能容纳10位数字...

希望这能解决你的问题

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15550222

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档