SQLite - 对来自三个不同表(sum,multiply,subtract等)的列进行算术运算

时间:2018-05-30 07:30:40

标签: mysql sql sqlite

使用SQLite查询我尝试使用不同表中的列执行算术运算,其中我将各组中的产品价格乘以对应于单独表中每个组的百分比:

SELECT id,
    SUM(column_a*column_b)
    FROM table_1
    GROUP BY id

我已经设法解决了如何对创建新视图的同一个表的列执行算术运算:

SELECT *
  FROM table_1
       INNER JOIN
       table_2 ON table_1.column_1 = table_2.column_1
       INNER JOIN
       table_3 ON table_2.column_2 = table_3.column_2;

我还设法加入了三个表:

SUM(table_1.column_1*table_3.column_2)

但我无法弄清楚如何对来自第三个表连接的两个不同表的两列进行算术运算,如:

The SELECT statement could not be parsed. Please correct the query and retry. Details: Syntax error

当我将这行代码添加到连接所有三个表的查询时,我得到:

INNER JOIN

我无法直接table_1 table_3table_2,因为它们没有相应的值,所以我必须通过|加入。

1 个答案:

答案 0 :(得分:0)

这个解决方案很简单,但如果你不喜欢像我这样的sql,那就不行了。

SELECT table_1.price * table_3.percentage
       INNER JOIN
       table_2 ON table_1.column_1 = table_2.column_1
       INNER JOIN
       table_3 ON table_2.column_2 = table_3.column_2;

似乎sql中的任何算术都需要在SELECT语句中完成。

下面更详细的算术语法让我错误地解决了这个问题,实际上解决方案更简单了:

SELECT id,
    SUM(column_a*column_b)
    FROM table_1
    GROUP BY id