2017-12-09 10 views
0

JDBC 커넥터가있는 App 스크립트를 사용하여 MySQL 통계 데이터베이스와 연결을 만듭니다. 단일 스크립트에서 여러 개의 쿼리를 실행하여 데이터베이스의 특정 정보를 단일 시트로 가져오고 싶습니다. 모든 쿼리의 결과는 모두 같은 구조로되어 있습니다 (모두 그룹 별 날짜입니다). YEAR, MONTH, DAY, VALUE와 내가 YEAR, MONTH, DATE 열을 고정시킬 수 있는지 궁금 해서요. 다른 모든 결과가 내 결과의 다음 열로 채워지는지 궁금합니다. , 골 B 년 : 달, 골 C : DAY는, 골 D가 : 쿼리 한 결과, 골 E가 : 뭔가 골는 A 하나의 시트에 Google 스크립트 및 JDBC 커넥터가있는 여러 개의 SQL 쿼리

쿼리 2 .... 여기

에서 결과는 내가 시작한 일입니다

function loadData() { 
var sheet = SpreadsheetApp.getActiveSheet(); 
var instanceUrl = 'jdbc:mysql://' + address; 
var dbUrl = instanceUrl + '/' + db; 
var conn = Jdbc.getConnection(dbUrl, user, userPwd); 

var stmt = conn.createStatement(); 
stmt.setMaxRows(10); 
var results = stmt.executeQuery('Select YEAR(dateCreated) as yearAdded,MONTH(dateCreated) as monthAdded, DAY(dateCreated) as dayAdded,sum(amount)/100 from stripeTransactions GROUP BY yearAdded ,monthAdded,dayAdded;'); 
var numCols = results.getMetaData().getColumnCount(); 
while (results.next()) { 
    var rowArray = new Array(); 
    for (var col = 0; col < numCols; col++) { 
    rowArray.push(results.getString(col+1)); 
    } 
    sheet.appendRow(rowArray); 
} 

results.close(); 
stmt.close(); 
var stmt2 = conn.createStatement(); 
stmt2.setMaxRows(10); 
var results2= stmt2.executeQuery('Select YEAR(dateAdded) as yearAdded,MONTH(dateAdded) as monthAdded, DAY(dateAdded) as dayAdded,sum(amount) from itunestransactions GROUP BY yearAdded ,monthAdded,dayAdded;'); 
var numCols2 = results2.getMetaData().getColumnCount(); 
while (results2.next()) { 
    var rowArray2 = new Array(); 
    for (var cal = numCols; cal < numCols2; cal++) { 
    rowArray2.push(results2.getString(cal+1)); 
    } 
sheet.appendRow(rowArray2); 
} 

results2.close(); 
stmt2.close(); 
} 

감사 (이 스크립트는 내가 각 쿼리는 다음 중 하나에있는 모든 시트를 병합에 대한 결과 당 한 장을 가지고있을 것 같아요, 모든 결과 행을 추가하지만 난에서 한 장에 그것을 할 오히려 것와 처음)

답변

0

당신은 o 고급 MySQL을 사용하여이 문제를 해결할 수 있지만 기본 쿼리에 하위 쿼리를 중첩시킬 수 있습니다.

또한 쿼리를보다 효율적으로 사용하려면 MySQL 저장 프로 시저에 쿼리를 래핑 한 다음 JDBC를 통해 Apps Script에서 해당 프로 시저를 호출하면됩니다.

는 몇 가지 튜토리얼에 대한 링크를 얻을 수 있습니다 당신은 시작 :

MySQL Subquery

MySQL Stored Procedures