你好人Stackoverflow!我一直在挑战自己的大脑。Mysql,当变量依赖于其他选择时计算sum()
我有一个查询来计算出售的特定销售产品的总和,这很容易。这让我疯狂的挑战的第二部分是:
有一些销售由“捆绑”组成,这意味着单个产品的总和不等于最终价格。为了销售成捆,它必须有一个“电视”产品。电视产品可以自己出售,并有相关的价格,但是当它是捆绑包的一部分时,价格是可变的。以下是我迄今为止:
定价矩阵定
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方面?
下面的表格显示了该TV产品的计算价格,该价格基于哪个包和它所属的排名。我创建了这个,因为我正在考虑如果该TV产品出现在连接计算中,则使用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
这个问题是越来越离谱了,这样我会停在那里,但请这是否有道理,没有任何人有什么建议?非常感谢!
凡“任何INT”被提供,在将“超”不能选择什么情况?它与本地可用性有关吗? – Strawberry 2013-03-21 14:43:16
Ultra是最高/最快的速度。如果我们正在测试任何互联网,它将被包含在“或()”类型的计算中,但就Double Play捆绑而言,Ultra是唯一符合第一个双重播放TV&Ultra的速度互联网。那有意义吗?再次感谢您的帮助! – alex 2013-03-21 16:08:43