()
| 50 | |
| 51 | |
| 52 | function fetchBigQueryData() { |
| 53 | var input = pullVariables() |
| 54 | Logger.log(input); |
| 55 | var projectId = project; |
| 56 | |
| 57 | 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 = '${input.var3}' AND city = '${input.var4}' Group by ALL Order BY 5 desc;` |
| 58 | |
| 59 | var request = { |
| 60 | query: query, |
| 61 | useLegacySql: false |
| 62 | }; |
| 63 | |
| 64 | var queryResults = BigQuery.Jobs.query(request, projectId); |
| 65 | var jobId = queryResults.jobReference.jobId; |
| 66 | |
| 67 | var results = BigQuery.Jobs.getQueryResults(projectId, jobId); |
| 68 | var rows = results.rows; |
| 69 | |
| 70 | var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('RawData'); |
| 71 | if (!sheet) { |
| 72 | sheet = SpreadsheetApp.getActiveSpreadsheet().insertSheet('RawData'); |
| 73 | } else { |
| 74 | sheet.clear(); |
| 75 | } |
| 76 | |
| 77 | // Set headers |
| 78 | var headers = results.schema.fields.map(field => field.name); |
| 79 | sheet.appendRow(headers); |
| 80 | var headerRange = sheet.getRange(1, 1, 1, headers.length); |
| 81 | headerRange.setBackground('#000000').setFontColor('#FFFFFF').setFontWeight('bold'); |
| 82 | |
| 83 | // Set Rows |
| 84 | var values = rows.map(row => row.f.map(cell => cell.v)); |
| 85 | // Get the next empty row in the sheet |
| 86 | var lastRow = sheet.getLastRow(); |
| 87 | // Append all rows at once |
| 88 | if (values.length > 0) { |
| 89 | sheet.getRange(lastRow + 1, 1, values.length, values[0].length).setValues(values); |
| 90 | } |
| 91 | } |
| 92 | |
| 93 | function formatReport() { |
| 94 | auth(); |
no test coverage detected