Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
高级MySQL查询(多条件和分组)_Mysql_Solution - Fatal编程技术网

高级MySQL查询(多条件和分组)

高级MySQL查询(多条件和分组),mysql,solution,Mysql,Solution,我有一个演示表,其中products列prod分组为categories列category: 有以下栏目: 最小年龄-该产品仅适用于至少此年龄段的客户 最大客户数-此产品仅适用于每次购买此数量的客户 我想解释一下:我们有一个家庭,两个父母年龄分别为35岁和39岁,两个孩子年龄分别为7岁和13岁。我需要的是一个sql查询,当这个系列设置总成本的上限时,它将为这个系列提供可用的类别。我需要处理此条件的查询: +----------------------+--------------+ | maxi

我有一个演示表,其中products列prod分组为categories列category:

有以下栏目: 最小年龄-该产品仅适用于至少此年龄段的客户 最大客户数-此产品仅适用于每次购买此数量的客户

我想解释一下:我们有一个家庭,两个父母年龄分别为35岁和39岁,两个孩子年龄分别为7岁和13岁。我需要的是一个sql查询,当这个系列设置总成本的上限时,它将为这个系列提供可用的类别。我需要处理此条件的查询:

+----------------------+--------------+
| maximum total costs: |    $99.00    |
+----------------------+--------------+
| 1st person:          | 35 years old |
| 2nd person:          | 39 years old |
| 3th person:          | 7 years old  |
| 4th person:          | 13 years old |
+----------------------+--------------+
结果应显示可用类别:

+----------+--------+
| category | total  |
+----------+--------+
| A        | $92.00 |
+----------+--------+
如果最高总成本将更改为150.00美元,结果应为:

+----------+---------+
| category |  total  |
+----------+---------+
| A        | $92.00  |
| B        | $102.00 |
+----------+---------+
+----------+---------+
| category |  total  |
+----------+---------+
| A        | $100.00 |
| B        | $95.00  |
| D        | $80.00  |
+----------+---------+
+----------+---------+
| category |  total  |
+----------+---------+
| B        | $175.00 |
+----------+---------+
对于家庭B:

结果应该是:

+----------+---------+
| category |  total  |
+----------+---------+
| A        | $92.00  |
| B        | $102.00 |
+----------+---------+
+----------+---------+
| category |  total  |
+----------+---------+
| A        | $100.00 |
| B        | $95.00  |
| D        | $80.00  |
+----------+---------+
+----------+---------+
| category |  total  |
+----------+---------+
| B        | $175.00 |
+----------+---------+
对于C族:

结果应该是:

+----------+---------+
| category |  total  |
+----------+---------+
| A        | $92.00  |
| B        | $102.00 |
+----------+---------+
+----------+---------+
| category |  total  |
+----------+---------+
| A        | $100.00 |
| B        | $95.00  |
| D        | $80.00  |
+----------+---------+
+----------+---------+
| category |  total  |
+----------+---------+
| B        | $175.00 |
+----------+---------+
还有一个重要的注意事项:例如,如果客户年龄为25岁,并且在护理中有3个最小年龄记录2、15和18-在这种情况下,仅使用最接近的一个18。如果有问题,我可以通过增加列max_age来扩展表,以创建间隔2-14、15-18、18-99

提前感谢您的帮助