Динамически возвращать все SQL результаты, где значение одного столбца равно значению другого столбца - PullRequest
0 голосов
/ 06 февраля 2020

У меня есть форма поиска, которая просматривает таблицу для сотрудников. Я хочу, чтобы в поиске были возвращены только те сотрудники, которые соответствуют SupEmp. У человека, выполняющего поиск, есть EmployeeNumber. Этот номер сотрудника динамически импортируется при входе в форму поиска. Если ваш EmployeeNumber соответствует другим SupEmp номерам , отобразите все строки, соответствующие вашему EmployeeNumber.

В настоящее время мой код просто возвращает всех сотрудников. Пересмотренный код должен показывать только тех сотрудников, чей SupEmp соответствует вашему EmployeeNumber.

var vendorCols = "SupEmp, FIRST_NAME, LAST_NAME, EmployeeNumber, DEPARTMENT, Position, Status";

       $('#EmployeeLookup').autocomplete({
           source: function (request, response) {
               var sql = "SELECT " + vendorCols + " FROM EMPLOYEE_SEARCH"
                   + " WHERE UPPER(FIRST_NAME + LAST_NAME) like '%" + request.term.toUpperCase() + "%'";

               $.ajax({
                   url: '/public/GetData',
                   type: 'POST',
                   data: JSON.stringify({ query: sql, connectionName: "LawsonConnection" }),
                   contentType: "application/json; charset=utf-8",
                   dataType: 'json',
                   success: function (dataArray) {
                       response($.map(dataArray, function (item) {
                           if (request.term.indexOf("'") >= 0) { item = 'Do not enter special characters' }
                           if (item === "Data Not Found")
                               item = "Employee Cannot Be Found";
                           return {
                               label: item
                           };
                       }));
                   }
               });
           },

1 Ответ

0 голосов
/ 07 февраля 2020

В вашем вопросе много пробелов, но из того, что я понял, вам нужно добавить предложение AND к вашему запросу и, учитывая, что у вас есть список SupEmp numbers , это должно быть что-то вроде:

+ " WHERE UPPER(FIRST_NAME + LAST_NAME) like '%" + request.term.toUpperCase() + "%'"
+ " AND EmployeeNumber IN (" +request.SupEmpNumbers,.join(', ') + ")" ;
...