你好,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
这个问题变得越来越荒谬所以我会停在那里,但请这是否有意义,有没有人有任何建议?非常感谢你!
答案 0 :(得分: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位......
希望这能解决您的问题
我