Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/80.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
需要从Excel数组公式到SQL连接语句的帮助吗_Sql_Arrays_Excel - Fatal编程技术网

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

需要从Excel数组公式到SQL连接语句的帮助吗,sql,arrays,excel,Sql,Arrays,Excel,这是表(新用户,还不能发布图像): 我一直使用Excel,但由于数据集比较大,我正在改用SQL。要在Excel中填充单元格G2,我会使用如下内容: =SUM((A2:A8=E2)*(B2:B8)) 在Excel中,单元格G2的值为141 我知道了如何在SQL中实现这一点,但我不太明白为什么会这样。以下是我在SQL中使用的内容: SET Table2.total_units_purchased = Table1.some_number FROM Table2 INNER JOIN (

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

我一直使用Excel,但由于数据集比较大,我正在改用SQL。要在Excel中填充单元格G2,我会使用如下内容:

=SUM((A2:A8=E2)*(B2:B8))
在Excel中,单元格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
在某些_编号之前是否需要“AS”?由于某些原因,即使我省略了“AS”,这仍然有效

我有什么遗漏吗?最后一行代码中表的顺序重要吗


谢谢您的帮助。

在别名中使用'AS'关键字是可选的,这就是为什么省略'AS'时查询仍然有效的原因

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

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

然后,连接两个表,即Table2和new Table1,其中它们的项字段具有相同的值

最后,选择“购买的单位总数”字段,并将其分配到表2的“购买的单位总数”字段

您可以按照以下方式编写SQL查询,这与Excel函数的功能相同

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

在本例中,它是一个别名,虽然形式良好,但不是必需的。ON子句的顺序并不重要,我对“AS”有点困惑,因为我最初使用它来标记查询结果中的一列。我不知道它可以用来分配这样的值。你的查询很好。首先对购买的单位求和(运行内部查询以查看其输出),然后将其视为派生表(别名为“Table1”),并连接到该表以执行更新。现在事情变得更有意义了。非常感谢。我没有意识到前两行和后两行中的“Table1”是一个别名!我认为我实际上是在引用原始的表1,这就是为什么我对如何引用“some_number”感到困惑,而“some_number”在表1中根本不存在……我在前两行和后两行用不同的名称重新运行了代码。这也解释了为什么我在倒数第二行中遗漏了“AS”。我不知道“Table1”实际上是一个别名。当我尝试运行此操作时,出现了“关键字“select”附近的语法错误”错误。这似乎是一个比我所做的简单得多的解决方案。我不是100%确定这两种解决方案现在是如何工作的…我仍然需要关注SQL语言。上面的查询应该可以正常工作,没有任何错误。你指的是哪个数据库?甲骨文,MySQL。。?