diff --git a/src/libs/middlewares/reqQueryFields.js b/src/libs/middlewares/reqQueryFields.js
index 88405e016bf2cc406c837fc3bedc61948c6588ad..e64a9321b060e1f9e78221b3f7d02ddde27bb5a6 100644
--- a/src/libs/middlewares/reqQueryFields.js
+++ b/src/libs/middlewares/reqQueryFields.js
@@ -210,26 +210,21 @@ class ReqQueryFields {
                         // Se o valor é um campo a ser incluído no SELECT
                         if(typeof field.field !== 'undefined' && field.field) {
                             log.debug('SELECT');
-                            // if (Array.isArray(value.tableField)) {
-                            //     value.tableField.forEach((f, i) => {
-                            //         req.sql.field(value.table+'.'+f, value.resultField[i] || f)
-                            //             .group(value.table+'.'+f);
-                            //     })
-                            // }
-                            req.sql.field(value.table+'.'+value.tableField, value.resultField || value.tableField)
-                                .group(value.table+'.'+value.tableField)
-                                .order(value.table+'.'+value.tableField);
+                            if (Array.isArray(value.resultField)) {
+                                value.tableField.forEach((f, i) => {
+                                    req.sql.field(value.table+'.'+f, value.resultField[i] || f)
+                                        .group(value.table+'.'+f);
+                                })
+                            }else{
+                                req.sql.field(value.table+'.'+value.tableField, value.resultField || value.tableField)
+                                    .group(value.table+'.'+value.tableField);
+                            }
                         }
                         // Se o valor é um campo para ser usado no WHERE
                         if(typeof field.where !== 'undefined' && field.where) {
                             log.debug('WHERE');
                             // Valor do where
 
-                            //multiple where
-                            // if (Array.isArray(value.tableField)){
-                            //
-                            // }
-
                             let whereValue = param[k];
                             // Valor sempre vem como string, necessário fazer parse para o banco
                             if(value.where.type === 'integer') whereValue = parseInt(whereValue, 10);
@@ -237,9 +232,25 @@ class ReqQueryFields {
                             if(value.where.type === 'string') whereValue = '%'+whereValue+'%';
                             if(value.where.type === 'boolean') whereValue = (whereValue.toLowerCase() === 'true' || parseInt(whereValue, 10) === 1);
                             let tbl = value.where.table || value.table;
-                            let whereField = (value.where.type === 'string')? 'LOWER('+tbl+'.'+value.where.field+')' : tbl+'.'+value.where.field;
-                            let lower = (value.where.type === 'string') ? ' LOWER(?) ' : ' ? ';
-                            req.sql.where(whereField + ' ' + value.where.relation + lower, whereValue);
+                            // multiple where, only tested for  boolean filds
+                            if (Array.isArray(value.tableField)) {
+                                let lower = (value.where.type === 'string') ? ' LOWER(?) ' : ' ? ';
+                                let whereField = '';
+                                let whereValues = [];
+                                value.where.field.forEach((f, i, arr) => {
+                                    whereValues.push(whereValue);
+                                    whereField += (value.where.type === 'string') ? 'LOWER(' + tbl + '.' + value.where.field[i] + ')' : tbl + '.' + value.where.field[i];
+                                    whereField += ' ' + value.where.relation + ' ?';
+                                    if (i < arr.length - 1) {
+                                        whereField += ' ' + value.where.condition + ' ';
+                                    }
+                                });
+                                req.sql.where(whereField, ...whereValues);
+                            } else {
+                                let whereField = (value.where.type === 'string') ? 'LOWER(' + tbl + '.' + value.where.field + ')' : tbl + '.' + value.where.field;
+                                let lower = (value.where.type === 'string') ? ' LOWER(?) ' : ' ? ';
+                                req.sql.where(whereField + ' ' + value.where.relation + lower, whereValue);
+                            }
                         }
                     }
                 });