2015-02-18 3 views
0

У меня есть это, что работает:FileMaker 12 и ExecuteSQL

ExecuteSQL ("Select email_Full from staffing where Branch = ? and EmployeeID = ? and Title= ?"; " "; " "; "001" ; "33748"; "Supv V") 

но мне нужен первый параметр, чтобы быть в пределах 001-300; второй параметр должен быть> 0, а третий может быть Supv, Supv 1, Supv 2, Supv 4 или Supv 5

Все мои попытки потерпят неудачу.

+0

(Если вы положили четыре пробела в начале строки, оно будет отформатировать его как код для отображения.) –

ответ

0

Попробуйте это:

ExecuteSQL ("SELECT email_Full FROM staffing WHERE Branch < 300 AND EmployeeId > 0 AND Title LIKE '%Supv%'" ; "" ; "") 
+0

В ветке <300 разрешена ветвь 0 и отрицательные числа, «% Supv%» будет соответствовать Supv3 и Supv 6, что может быть в порядке, но на самом деле это не обязательно первый%. –

0

Я сделал движение вперед с ExecuteSQL ("?? Выберите email_Full из штатного расписания, где Branch = и EMPLOYEE_ID> и озаглавить как"; " ";""; "024" «1»; «Supv%»)

Если я использую поле FileMaker для ветки, он возвращает email, полный для всех ветвей. Мне нужно это вовремя.

+1

Вы должны внести это в редактирование по своему оригинальному вопросу. Таким образом, мы можем легко понять, какой прогресс вы сделали, и он хранит всю информацию, которая может потребоваться, чтобы ответить на ваш вопрос в одном месте. И добро пожаловать в Stack Overflow :) –

+0

LIKE «Supv%» будет соответствовать Supv 5, Supv 6, Supv 1000 и т. Д. Убедитесь, что вы довольны этим. Вы выбираете записи из набивки, а не из ветвей, поэтому у вас есть запись электронной почты филиала для каждого сотрудника, а не для филиала. Вы можете попробовать DISTINCT email_Full, что проще, или вы можете попробовать присоединиться к таблице «Филиалы» –

1

Я предлагаю:

ExecuteSQL (" Select email_Full from staffing 
       WHERE Branch = ? 
       AND EmployeeID = ? 
       AND Title= ? 
       AND EmployeeID > 0 
       AND Branch BETWEEN 1 AND 300 
       AND Title IN (\"Supv\", \"Supv 1\", \"Supv 2\", \"Supv 4\" or \"Supv 5\")"; 
       ""; ""; GetAsNumber("001") ; "33748"; "Supv V") 

Я не уверен, о проверке EmployeeID, я думаю, что вы на самом деле не нужно NULL вместо> 0

I отлит Branch как номер на уровне параметров, overwise вы будете должны проверить его на список строк с IN или LIKE.