大家好,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 正如你所看到的,我还没有将productID分配给捆绑包,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 这个问题太长了,所以我就到此为止,但这有什么意义吗,有没有人有什么建议?非常感谢!
发布于 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位数字...
希望这能解决你的问题
我
https://stackoverflow.com/questions/15550222
复制相似问题