多个Google表格/工作簿上的SQL Union

时间:2019-01-10 18:26:09

标签: sql google-sheets

我有两本Google表格工作簿。它们都在A到J列中提供数据。

我可以将范围导入到一个工作簿中并命名数据范围,然后一次查询一个范围:=QUERY(Phone, "Select A,B,C,G,H,I,J", 1)

我尝试了几种不同的方法来合并数据,但是没有什么能像我所想的那样工作。

如果是SQL,我会这样做:

Select new.A, new.B, new.C, new.D
 from (
select A, B, C, D from Table1
Union
Select A, B, C, D from Table2
     )new
where new.A = 'incomplete'

edit1: 我能够使它正常工作,但是我不确定是否有更好的方法:

*电话和网络是我的命名范围
=unique({QUERY({Phone}, "Select Col2, Col3, Col7", 1);query({Web}, "Select Col2, Col3, Col7",1)})

2 个答案:

答案 0 :(得分:0)

如果有人尝试做我的事,这是对我所做事情的完整解释。

我的目标:
 1.我正在用jotForm填充两个Google表格。它们是不同的形式,但是确实捕获了一些相似的信息。
 2.我要将响应表与用于管理信息的响应表分开放置
 3.我想要在一个地方汇总一下响应表中的姓名和电话号码,以便响应者可以跟踪它们,并添加与她有关的信息。

我使用={importrange("https://docs.google.com/spreadsheets/d/{uniqueNumber}/edit#gid=0", "Sheet1!A:J")} 在每个Google表格上将它们都放入我的管理表中。
然后,通过转到选项卡,并使用Named Range Phone!A:J

,从其中的每个区域中指定一个命名范围

然后在最后一个标签(“报告”标签)上,输入以下内容:

=unique({QUERY({Phone}, "Select Col2, Col3, Col7", 1);query({Web}, "Select Col2, Col3, Col7",1)})

这可行,尽管仍不确定是否是最佳答案。它将每个查询放入一个数组中,并且通过将“唯一性”放在数组的前面,可以同时显示这两个查询。如果没有唯一性,它将仅显示第一个结果集。

答案 1 :(得分:0)

我建议尝试这样的事情:

=QUERY({Phone; Web}, "Select Col2, Col3, Col7 where Col2 <>''",1)

或者如果Col2中的数据是数字

=QUERY({Phone; Web}, "Select Col2, Col3, Col7 where Col2 is not null", 1)