Sql GoogleSheetsQueryWhere子句只返回第一行数据
我有一张表格,我正试图用它来展示学生在多个科目中的成绩概览,每个学生和他们的成绩在不同的行中 概述Sql GoogleSheetsQueryWhere子句只返回第一行数据,sql,google-sheets,Sql,Google Sheets,我有一张表格,我正试图用它来展示学生在多个科目中的成绩概览,每个学生和他们的成绩在不同的行中 概述 学生、英语、数学等 1、结果1、结果2等 2、结果3、结果4等 结果数据来自另一个系统,并在单独的表格中。每个科目的每个结果都是一个单独的行,其中第一列是学生ID,第二列是科目,第三列是结果 结果集 1,英语,成绩1 数学,结果2 等等 我一直在尝试各种形式的类似这样的查询 =query(RESULTSET!A1:C,“选择C,其中A='1'和B='ENGLISH',1),但查询只返回RE
- 学生、英语、数学等
- 1、结果1、结果2等
- 2、结果3、结果4等
- 1,英语,成绩1
- 数学,结果2
- 等等
=query(RESULTSET!A1:C,“选择C,其中A='1'和B='ENGLISH',1)
,但查询只返回RESULTSET中第一行数据的第一个结果
以下是一个指向测试电子表格的链接,其中包含再现问题的数据和查询:
我希望看到与每个学生ID和主题匹配的结果集的结果,但我只看到第一个结果,而不管ID或主题如何。删除A列引用周围的单引号,并将query()中的headers参数设置为零。试一试
=iferror(query('result set 1'!$A$1:$C58,"SELECT C WHERE A = "&$A2&" AND B = '"&UPPER(B$1)&"'",0))
按需要从右向下填充,看看是否有效
另一个选择是在B2中使用
=ArrayFormula(iferror(vlookup($A$2:$A$8&B$1, {'result set 1'!$A:$A&'result set 1'!$B:$B, 'result set 1'!$C:$C}, 2, 0)))
然后向右填充(确保第2行下面没有数据)。从int(1)中删除“”,并删除查询末尾的1,这样就可以了。=iferror(查询('result set 1'!$A$1:$C58,“选择C,其中A=“&$A2&”和B=”&UPPER(B$1)&“,”,0)),谢谢,这工作得很好。