Выберите критерии фильтрации оператора WHERE, передав значения в запрос SQL, используя R - PullRequest
0 голосов
/ 14 июня 2019

Четыре критерия от A до D будут переданы в оператор WHERE SQL-запроса для извлечения информации из базы данных 1, содержащей соответствующие столбцы с одинаковыми именами. Я хочу, чтобы оператор SQL WHERE мог игнорировать два критерия, называемые B и C, когда значение критериев A также можно найти в базе данных 2, которая также содержит столбец с именем A, и сохранить эти два критерия в операторе WHERE. когда значение A не может быть найдено в столбце A базы данных 2.

Этот код написан на языке R. Я смотрю на базу данных и знаю, что должна появиться информация, если код работает так, как я хочу.

query <- paste(/*some select and from statements, these worked*/
                 "WHERE Database1.A = ?",
                 "AND",
                 "CASE ",
                 "WHEN (0 = SELECT COUNT(Database2.A) FROM Database2 WHERE Database.A = ?)",
                 "THEN Database1.D = ?",
                 "ELSE Database1.B = ?",
                 " END",
                 "CASE ",
                 "WHEN (0 <> SELECT COUNT(Database2.A) FROM Database2 WHERE Database.A = ?)",
                 "THEN Database1.C = ?",
                 " END",
                 "AND Database1.D = ?",
                 "ORDER BY Database1.E",
                 sep = " ")

    sqlParams <- data.frame(
      A = params$A,
      A1 = params$A,
      D = params$D,
      B = params$B,
      A2 = params$A,
      C = params$C,
      B1 = params$B
    )

  res <- sqlExecute(con, query, sqlParams, 
                    fetch = TRUE, stringsAsFactors = FALSE)

Я смотрю на базу данных 1, и есть элементы, которые не имеют значения в столбцах B и C. Поэтому, если значение, которое я ввел в A, равно их значению в столбце A, должен быть список связанной информации об этом элементе. , тем не мение сообщения об ошибке нет, но ничего не обнаружено.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...