我是编码的初学者,我正在运行一个脚本,用Google Fusion Table中的数据更新Google电子表格。 Fusion Table的数据包含大约100个不同的列。
我想仅评估选定的列,例如:Date,FirstName,LastName,Department。搜索条件如下:
在电子表格上更新以下列“Date,FirstName,LastName,Department包含HR的部门”。
我使用以下脚本:
function runQuery() {
var sql = 'SELECT Date, FirstName, LastName, Department WHERE Department contains HR' + 'TableID';
var result = FusionTables.Query.sqlGet(sql, {
hdrs: false
});
if (result.rows) {
var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
var sheet = spreadsheet.getActiveSheet();
sheet.getRange(2, 1, result.rows.length, result.columns.length)
.setValues(result.rows);
}
}
选择列并将数据从Fusion Table传输到电子表格没有问题。出现以下错误,当我只想显示带有上述选择标题的数据时(“Department包含HR”):
- 无效查询:在'WHERE'附近解析错误(第1行,第33位)。 (Zeile 3,Datei“runQuery”) -
如果有人可以帮助我,那就太好了。先谢谢你。
更新“Jens”!
此功能正常。我通过以下标准接收选定的数据。
var tableName = '1sJjfOJ4Q.....'
function runQuery() {
var sql = 'SELECT Date, FirstName, LastName, Department, EMail from ' + 'tableName';
var result = FusionTables.Query.sqlGet(sql, {
hdrs: false
});
if (result.rows) {
var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
var sheet = spreadsheet.getActiveSheet();
// Append the results.
sheet.getRange(2, 1, result.rows.length, result.columns.length)
.setValues(result.rows);
}
}
当我添加“where子句”时发生错误:
var tableName = '1sJjfOJ4Q.....'
function runQuery() {
var sql = 'SELECT Date, FirstName, LastName, Department, EMail from ' + 'tableName' + 'WHERE Department contains HR';
var result = FusionTables.Query.sqlGet(sql, {
hdrs: false
});
if (result.rows) {
var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
var sheet = spreadsheet.getActiveSheet();
// Append the results.
sheet.getRange(2, 1, result.rows.length, result.columns.length)
.setValues(result.rows);
}
}
错误如下所示: 查询无效:“部门”附近的解析错误(第1行,第101位)。表ID无效1sJjfOJ4 ...- xLfYohPizswhere(第7行,文件“代码”)“
看来,第7行的“变化结果”不正确,我不知道原因。
更新“Rod”!
var tableName = '1sJjfOJ4Q.....'
function runQuery() {
var sql = 'SELECT Date, FirstName, LastName, Department, EMail from ' + 'tableName' + "WHERE Department contains 'HR'";
var result = FusionTables.Query.sqlGet(sql, {
hdrs: false
});
if (result.rows) {
var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
var sheet = spreadsheet.getActiveSheet();
// Append the results.
sheet.getRange(2, 1, result.rows.length, result.columns.length)
.setValues(result.rows);
}
}
发生相同的错误(请参阅更新ME) - >看来,第7行的“变化结果”是不正确的,我不知道为什么。
更新“Henrique”!
function runQuery() {
var sql = 'SELECT Date, FirstName, LastName, Department, EMail from 1sJjfOJ4Q..... WHERE Department contains HR';
var result = FusionTables.Query.sqlGet(sql, {
hdrs: false
});
if (result.rows) {
var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
var sheet = spreadsheet.getActiveSheet();
// Append the results.
sheet.getRange(2, 1, result.rows.length, result.columns.length)
.setValues(result.rows);
}
}
发生以下错误: 无效查询:在“HR”附近解析错误(第1行,第120位)。 (第7行,文件“代码”) 看来,第7行的“变化结果”是不正确的,我不知道为什么。
答案 0 :(得分:0)
您的选择需要在FROM
之前WHERE
。 tableID
和WHERE
子句之间应该有一个空格。最后,字符串" HR"应该用引号括起来。试试这个:
sql = "SELECT Date, FirstName, LastName, Department FROM "+tableID+" WHERE Department contains 'HR'";
假设您在调用此函数之前设置了具有正确值的tableID
变量。