你好 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
这个问题太长了,所以我会停在那里,但是请问这有意义吗,有人有什么建议吗?太感谢了!