|
|
|
| Сейчас для предприятия разрабатываю БД (2007 на основе Борея). Конечно, много пришлось материала перелопатить, но такой подход меня устроил. Неожиданно в тупик поставил запрос:
SELECT IIf(IsNull([Фамилия]).IIf(IsNull([Имя]).[Организация].[Имя]).IIf(IsNull([Имя]).[Фамилия].[Фамилия] & " " & [Имя])) AS [Хранить как], IIf(IsNull([Фамилия]).IIf(IsNull([Имя]).[Организация].[Имя]).IIf(IsNull([Имя]).[Фамилия].[Фамилия] & " " & [Имя])) AS [Имя сотрудника], Сотрудники.*
FROM Сотрудники
ORDER BY IIf(IsNull([Фамилия]).IIf(IsNull([Имя]).[Организация].[Имя]).IIf(IsNull([Имя]).[Фамилия].[Фамилия] & " " & [Имя])), IIf(IsNull([Фамилия]).IIf(IsNull([Имя]).[Организация].[Имя]).IIf(IsNull([Имя]).[Фамилия].[Фамилия] & " " & [Имя]));
Вообщем, понятно, зачем он нужен, но разобраться в нём не удалось и пришлось удалить Теперь в табл. Заказы я без труда из комбокса выбираю нужных мне сотрудников, но разобраться всё же хотелось бы. Тем более, что при составлении отчётов хотелось бы сразу формировать "имя", которое бы включало и имя и фамилию и, если надо, организацию.
Синтаксис функции IIf мне известен. Но как интерпретировать выше написанный запрос? Буду признателен за ответ. | |
|
| |
|
|
|
| /// но разобраться всё же хотелось бы.
нужно поменять разделитель с точки на точку с запятой или на запятую (смотря где этот запрос формируется - в конструкторе или в VBA Editor)
SELECT IIf(IsNull([tblEmployees].[FirstName]),IIf(IsNull([tblEmployees].[LastName]),[tblEmployees].[CompanyName],[tblEmployees].[LastName]),[tblEmployees].[FirstName] & " " & [tblEmployees].[LastName]) AS EmployeeName
FROM tblEmployees;
|
| |
|
| |
|
|
|
|
| Ну конечно вместо точек нужны или ',' или ';' (как уже сказал Учздщкук в зависимости от того где запрос написан)
Далее перевожу для первого поля называемого "Сохранить как"
Если поле Фамилия пустое Тогда
Если поле Имя пустое Тогда
Вывести поле Организация
Иначе (т.е. поле ИМЯ НЕ пустое)
Вывести поле Имя
конец если
Иначе (т.е. поле Фамилия НЕ пустое)
Если поле Имя пустое Тогда
Вывести поле Фамилия
Иначе (т.е. если пое Имя НЕ пустое)
Вывести поля Фамилия + Имя через пробел
конец если
конец если
|
Далее по аналогии. | |
|
| |