需要帮助从Excel数组公式到SQL连接语句

时间:2012-02-05 21:59:47

标签: sql arrays excel

这是表格(新用户,还不能发布图片):

screenshot

我一直使用Excel,但由于数据集较大,我正在切换到SQL。要在Excel中填充CELL G2,我会使用类似的东西:

=SUM((A2:A8=E2)*(B2:B8))

在Excel中为Cell G2提供了141的值。

我想出了如何在SQL中使用它,但我并不完全理解为什么这样可行。这是我在SQL中使用的:

SET Table2.total_units_purchased = Table1.some_number
FROM Table2 INNER JOIN
(
    SELECT Table1.item
    , SUM(Table1.units_purchased) AS some_number
    FROM Table1
    GROUP BY Table1.item
) Table1
ON Table2.item = Table1.item

some_number之前是否需要“AS”?即使我省略“AS”,这仍然有效。

我在这里遗漏了什么?最后一行代码中表格的顺序是否重要?

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

使用'AS'关键字作为别名是可选的,这就是为什么当您省略'AS'时您的查询仍然有效。

其次,在这种情况下,最后一行代码中表的顺序无关紧要。如果您的代码为ON Table1.item = Table2.item,则查询将以相同的方式工作。请注意,如果您使用左外连接或右外连接,则表顺序很重要。

在您的SQL代码中,您选择了“项目”和该项目的“购买单位总和”,并将这些数据放入另一个表格中,您再次将其重命名为Table1。

然后,您连接两个表,Table2和新的Table1,其中的项目字段具有相同的值。

最后,您选择“已购买单位的总和”字段并将其分配给Table2的total_units_purchased字段。

您可以编写SQL查询,如下所示,这与Excel函数的作用相同。

select sum(table1.units_purchased)
into table2.total_units_purchased
from table1, table2
where Table2.item = Table1.item