【问题标题】:Create a table as a result from 2 tables作为 2 个表的结果创建一个表
【发布时间】:2020-05-22 10:15:49
【问题描述】:

我正在尝试根据 2 个表格价格和销售额创建一个表格 该表应包含 4 列产品/日期/金额/收入 其中前 3 列是销售表的总副本,收入列应该是 = sales.amount * prices.price

结果我得到一个空表

cursor.execute("CREATE TABLE revenue(product VARCHAR(1), date DATE, amount FLOAT, revenue FLOAT);")
cursor.execute("INSERT into revenue SELECT sales.product, sales.date, sales.amount, prices.price*sales.amount FROM sales, prices")
conn.commit()

【问题讨论】:

  • 您好@VladimirDemo,欢迎加入Owerflow。您能否向我们展示您希望在第三张表中获得的两行表格销售数据和两行表格价格数据?并向我们​​展示预期的结果。

标签: python mysql sql


【解决方案1】:

我相信你可以做到这么简单:

CREATE TABLE revenue as
select s.product, s.`date`, s.amount, p.price * s.amount
from sales s
join prices p on s.product = p.product;

最后一行:

join prices p on s.product = p.product;

是我假设的连接条件可能是......

Here is a small demo

【讨论】:

    【解决方案2】:

    首先要避免使用implicit joins,因为它们已经被弃用了一段时间,如果需要,如果需要使用保留字,如 [date],如果列名包含空格/特殊字符或包含 SQL 关键字,则必须将它们括起来:

    INSERT INTO revenue (product , [date], amount , revenue)
    SELECT s.product, s.[date], s.amount,p.price*s.amount 
    FROM sales AS s
    INNER JOIN prices AS p ON (join condition)
    

    如果您遇到任何转换问题,您可能需要 CAST() 获取 prices.price*sales.amount 部分。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-01-02
      • 2017-01-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多