()
| 73 | |
| 74 | |
| 75 | function fetchBigQueryData() { |
| 76 | var input = pullVariables() |
| 77 | Logger.log(input); |
| 78 | var projectId = project; |
| 79 | |
| 80 | var query = `SELECT extract(year from date) as year, category_name, item_description, vendor_name, COUNT(*) as num_trans, ROUND(SUM(sale_dollars),2) as sales_in_usd, ROUND(SUM(state_bottle_cost * bottles_sold),2) as cost FROM \`bigquery-public-data.iowa_liquor_sales.sales\` Where EXTRACT(year FROM date) IN (${input.var1}, ${input.var2}) AND category_name IN ('${input.var3}','${input.var4}','${input.var5}') AND city = '${input.var6}' Group by ALL Order BY 5 desc;` |
| 81 | |
| 82 | var request = { |
| 83 | query: query, |
| 84 | useLegacySql: false |
| 85 | }; |
| 86 | |
| 87 | var queryResults = BigQuery.Jobs.query(request, projectId); |
| 88 | var jobId = queryResults.jobReference.jobId; |
| 89 | |
| 90 | var results = BigQuery.Jobs.getQueryResults(projectId, jobId); |
| 91 | var rows = results.rows; |
| 92 | |
| 93 | var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('RawData'); |
| 94 | if (!sheet) { |
| 95 | sheet = SpreadsheetApp.getActiveSpreadsheet().insertSheet('RawData'); |
| 96 | } else { |
| 97 | sheet.clear(); |
| 98 | } |
| 99 | |
| 100 | // Set headers |
| 101 | var headers = results.schema.fields.map(field => field.name); |
| 102 | sheet.appendRow(headers); |
| 103 | var headerRange = sheet.getRange(1, 1, 1, headers.length); |
| 104 | headerRange.setBackground('#000000').setFontColor('#FFFFFF').setFontWeight('bold'); |
| 105 | |
| 106 | // Set Rows |
| 107 | var values = rows.map(row => row.f.map(cell => cell.v)); |
| 108 | // Get the next empty row in the sheet |
| 109 | var lastRow = sheet.getLastRow(); |
| 110 | // Append all rows at once |
| 111 | if (values.length > 0) { |
| 112 | sheet.getRange(lastRow + 1, 1, values.length, values[0].length).setValues(values); |
| 113 | } |
| 114 | } |
| 115 | |
| 116 | function formatReport() { |
| 117 | auth(); |
no test coverage detected