Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/84.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 SQL-将两个表中的2个值相乘,以显示一个新表,并显示结果_Mysql_Sql - Fatal编程技术网

Mysql SQL-将两个表中的2个值相乘,以显示一个新表,并显示结果

Mysql SQL-将两个表中的2个值相乘,以显示一个新表,并显示结果,mysql,sql,Mysql,Sql,在试图在一个包含数量的表和其他包含价格的表之间进行乘法时,我遇到了一个问题,即在SQL中显示特定结果 我认为图片和代码将帮助您更好地理解我的问题 因此,我有6个客户订单(co_ID),在每个客户订单中,客户都购买了产品。 我试图将每个产品的数量(从客户订单明细表)乘以相关价格(从产品表), 然后最终显示一个新表,该表由客户订单ID和该订单的总价组成 您可以看到,我目前得到了一个不同的结果(在代码左侧的图像中) 客户订单明细表: +---------+--------+-------------

在试图在一个包含数量的表和其他包含价格的表之间进行乘法时,我遇到了一个问题,即在SQL中显示特定结果

我认为图片和代码将帮助您更好地理解我的问题

因此,我有6个客户订单(co_ID),在每个客户订单中,客户都购买了产品。 我试图将每个产品的数量(从客户订单明细表)乘以相关价格(从产品表), 然后最终显示一个新表,该表由客户订单ID和该订单的总价组成

您可以看到,我目前得到了一个不同的结果(在代码左侧的图像中)

客户订单明细表:

+---------+--------+--------------+
| co_ID   | p_ID   | cod_quantity |
+---------+--------+--------------+
| 1000001 | 150009 |233           |
+---------+--------+--------------+
| 1000002 | 150001 | 400          |
+---------+--------+--------------+
| 1000002 | 150002 | 1000         |
+---------+--------+--------------+
| 1000002 | 150003 | 300          |
+---------+--------+--------------+
| 1000002 | 150004 | 600          |
+---------+--------+--------------+
| 1000002 | 150008 | 2000         |
+---------+--------+--------------+
| 1000003 | 150004 | 350          |
+---------+--------+--------------+
| 1000003 | 150005 | 500          |
+---------+--------+--------------+
| 1000003 | 150007 | 800          |
+---------+--------+--------------+
| 1000003 | 150008 | 1000         |
+---------+--------+--------------+
| 1000004 | 150001 | 450          |
+---------+--------+--------------+
| 1000004 | 150002 | 800          |
+---------+--------+--------------+
| 1000004 | 150005 | 700          |
SELECT factory.customer_order.co_ID, factory.customer_order_details.cod_quantity * factory.product.p_price
AS total_price
FROM factory.customer_order_details, factory.product, factory.customer_order
WHERE factory.customer_order_details.co_id = factory.customer_order.co_id;
客户订单表

╔═════════╦════════╦═════════════════════╗
║ co_ID   ║ c_ID   ║ co_date             ║
╠═════════╬════════╬═════════════════════╣
║ 1000001 ║ 200001 ║ 2020-07-19 12:35:28 ║
╠═════════╬════════╬═════════════════════╣
║ 1000002 ║ 200002 ║ 2020-07-19 14:53:14 ║
╠═════════╬════════╬═════════════════════╣
║ 1000003 ║ 200003 ║ 2020-07-19 09:12:40 ║
代码是:

+---------+--------+--------------+
| co_ID   | p_ID   | cod_quantity |
+---------+--------+--------------+
| 1000001 | 150009 |233           |
+---------+--------+--------------+
| 1000002 | 150001 | 400          |
+---------+--------+--------------+
| 1000002 | 150002 | 1000         |
+---------+--------+--------------+
| 1000002 | 150003 | 300          |
+---------+--------+--------------+
| 1000002 | 150004 | 600          |
+---------+--------+--------------+
| 1000002 | 150008 | 2000         |
+---------+--------+--------------+
| 1000003 | 150004 | 350          |
+---------+--------+--------------+
| 1000003 | 150005 | 500          |
+---------+--------+--------------+
| 1000003 | 150007 | 800          |
+---------+--------+--------------+
| 1000003 | 150008 | 1000         |
+---------+--------+--------------+
| 1000004 | 150001 | 450          |
+---------+--------+--------------+
| 1000004 | 150002 | 800          |
+---------+--------+--------------+
| 1000004 | 150005 | 700          |
SELECT factory.customer_order.co_ID, factory.customer_order_details.cod_quantity * factory.product.p_price
AS total_price
FROM factory.customer_order_details, factory.product, factory.customer_order
WHERE factory.customer_order_details.co_id = factory.customer_order.co_id;
我将感谢任何帮助,在这种情况下,我正在努力解决这一问题一段时间了


仅供参考-我会将总价作为一列保存在客户订单表(带日期的正确订单)上,但我需要将其规范化(BCNF)我认为它不会与其中的价格标准化。

您需要在
客户订单详细信息
产品
之间加入一个连接条件,因此您需要乘以正确的产品价格

要获得每个订单的总额,您需要使用
SUM()
聚合函数和
分组依据

SELECT co.co_ID, SUM(cod.cod_quantity * p.p_price) AS total_price
FROM customer_order AS co
JOIN customer_order_details as cod ON cod.co_id = co.co_id
JOIN product AS p ON p.p_id = cod.p_id
GROUP BY co.co_ID

嗨,现在好点了吗?没有。我再次向你推荐我之前的评论。链接的答案非常具体。您需要
工厂.product
的连接条件。否则,您将为每个产品生成一行,而不仅仅是订单中的产品。如果您学习使用ANSI连接语法,就不会犯此错误。非常感谢Barmar,我需要更多地练习连接语法。我尝试实现您编写的内容,但收到一个错误代码1054:“字段列表”中的未知列factory.customer\u order.co\u ID,即使它已定义且我没有输入错误。您知道这是什么原因吗?如果您在
FROM
JOIN
子句中为表分配别名,则不能在
选择
列表中使用完整的表名。你必须写
co.co\u ID
,而不是
factory.customer\u order.co\u ID
。谢谢你,巴玛,你在这里帮了我很多忙!!!祝你今天愉快,我的朋友friend@RonSwanson . . . 如果这回答了你的问题,你应该接受答案。