Форум программистов, компьютерный форум, киберфорум
Microsoft Access
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.67/30: Рейтинг темы: голосов - 30, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 17.05.2012
Сообщений: 36

Запрос

17.05.2012, 01:48. Показов 6222. Ответов 27
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте! Никак не получается сделать вроде бы несложный запрос с вычисляемым полем:
есть таблица Сотрудники, в которой содержаться данные о сотрудниках фирмы:

Фамилия, Имя, Отчество, Наличие детей, Зарплата.

Требуется создать запрос, который увеличивает суммарный фонд зарплаты в 1,5 раз при условии, что имеется больше 10 сотрудников, у которых есть дети. Т.е. вывести нужно только сам результат (либо увеличенный в 1,5 раза фонд, либо старый фонд если условие не выполняется)

В конструкторе запроса, в построитель выражений я ввел следующую формулу:
Фонд: IIf(Count([Сотрудник]![Фамилия])>10 And [Сотрудник]![Наличие детей]="Да";Sum([Сотрудник]![Зарплата])*1,5;Sum([Сотрудник]![Зарплата]))
На что access выдал сообщение: Попытка выполнить запрос, который не включает указанное выражение ... как часть статической функции или группы.

Вроде все в формуле логично, но почему-то вылезает это окно. Помогите, пожалуйста разобраться.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
17.05.2012, 01:48
Ответы с готовыми решениями:

Если нужно сделать запрос на добавление, зачем предварительно делать запрос на выборку?
Есть таблица: ID_записи, поле1, поле2, поле3. Хотелось бы записать запрос на добавление записи с полем1=!.!. (остальные пустые, кроме...

Запрос выдает лишний запрос, как это предотвратить?
Добрый день! В который раз обращаюсь к Вам, спасибо, что не отказываете в помощи студентке :) Описание проблемы: в моей БД (делаю в MS...

ACCESS запрос на выбор даты и запрос Число прокатов
Здравствуйте, как правильно написать в SQL,чтобы в окошке не показалось "ДатаВремя", а "Введите дату"? Этот запрос...

27
Эксперт MS Access
 Аватар для alvk
7459 / 4592 / 302
Регистрация: 12.08.2011
Сообщений: 14,383
18.05.2012, 02:57
Студворк — интернет-сервис помощи студентам
......................
Миниатюры
Запрос   Запрос  
1
0 / 0 / 0
Регистрация: 17.05.2012
Сообщений: 36
18.05.2012, 08:34  [ТС]
alvk, ну правда, это требование преподавателя, - делать без sql одной строчкой с помощью стандартных функций. Я понимаю, что с точки зрения профессиональных программистов это смешно.
Но что делать нам, студентам?)
0
Эксперт MS Access
 Аватар для alvk
7459 / 4592 / 302
Регистрация: 12.08.2011
Сообщений: 14,383
18.05.2012, 08:37
Цитата Сообщение от springe Посмотреть сообщение
Но что делать нам, студентам?)
Внимательно рассмотреть картинки и самому проделать тоже самое.
1
0 / 0 / 0
Регистрация: 17.05.2012
Сообщений: 36
18.05.2012, 08:57  [ТС]
Ну Вы ведь делаете через Select и From, я могу использовать только перечень встроенных в БД функций
У меня не получилось через SUM и Count сделать
Фонд: IIf(Count([Сотрудник]![Фамилия])>10 And [Сотрудник]![Наличие детей]="Да";Sum([Сотрудник]![Зарплата])*1,5;Sum([Сотрудник]![Зарплата]))
Ошибка вылезает, видимо из-за наличия логического поля в составе Iff
Через DSum и Dcount не понял как нормально сделать
Миниатюры
Запрос  
0
Эксперт MS Access
 Аватар для alvk
7459 / 4592 / 302
Регистрация: 12.08.2011
Сообщений: 14,383
18.05.2012, 09:36
У вас 2010 Акцесс? Посмотрите, там тоже есть кнопка переключения режимов отображения запроса.
p.s. вы же всё проверили и посмотрели и сделали выводы про встроенность?
Миниатюры
Запрос  
0
3544 / 1118 / 94
Регистрация: 13.03.2011
Сообщений: 1,513
18.05.2012, 09:50
Цитата Сообщение от springe Посмотреть сообщение
Ну Вы ведь делаете через Select и From, я могу использовать только перечень встроенных в БД функций
У меня не получилось через SUM и Count сделать
Блин, коза-дереза.
У вас, что в задании сказано об обязательном использовании обеих функций Sum и Count?
Чем не устроило
Цитата Сообщение от minob
Расчет: Sum(Зарплата)*IIf(Sum(IIf([Наличие детей];1;0))>10;1,5;1)
?
Цитата Сообщение от springe Посмотреть сообщение
Через DSum и Dcount не понял как нормально сделать
Чем вас не устраивает
Расчет: DSum("Зарплата";"Сотрудники")*IIf(DCount ("*";"Сотрудники";"[Наличие детей]")>10;1,5;1)
Чтобы на выходе была одна строка нужно сделать одно из двух:
- если выбрана таблица "Сотрудники", откройте окно "Свойства запроса" и выставьте в свойстве "Набор значений" значение 1;
- в конструкторе перед началом формирования запроса не выбирайте никаких таблиц.

Еще один вариант - симбиоз Sum и Dcount
Visual Basic
1
Расчет: Sum(Зарплата)*IIf(DCount("*";"Сотрудники";"[Наличие детей]")>10;1,5;1)
1
0 / 0 / 0
Регистрация: 17.05.2012
Сообщений: 36
18.05.2012, 21:30  [ТС]
minob, прошу простить меня за занудство
В принципе мне нравится последний вариант(синтез). Только не понятно для чего звездочка нужна. Поискал в официальном справочнике- почти ничего не понял. Если можно, поясните простыми словами.
Еще раз, огромное спасибо за терпение и помощь.

Добавлено через 1 час 26 минут
и еще, можно ли чем-то звездочку (*) заменить (например каким-нибудь повторным Iff),
и можно ли, или это будет неправильно, писать в формуле не просто 1,5, а 1,5*Sum(Зарплата),
простите, пожалуйста, за глупость, если что
0
3544 / 1118 / 94
Регистрация: 13.03.2011
Сообщений: 1,513
18.05.2012, 21:36
Цитата Сообщение от springe Посмотреть сообщение
В принципе мне нравится последний вариант
Не самый плохой, но, ИМХО, самый лучший находится здесь, т.к. в нем используются только агрегатные функции SQL. Использование же в запросах D-функций - менее эффективно, поэтому без надобности их стараются не использовать.
Цитата Сообщение от springe Посмотреть сообщение
... не понятно для чего звездочка нужна.
Первая звездочка - это знак умножения.
О второй все прекрасно описано в справочнике, пересказывать там нечего
Цитата Сообщение от Help
Синтаксис
DCount(выражение, набор[, условие])
...
Функция DCount не подсчитывает записи, содержащие пустые (Null) значения в поле, задаваемом аргументом выражение, за исключением случая, когда в аргументе выражение задан подстановочный знак звездочка (*). При указании данного подстановочного знака DCount подсчитывает полное число записей, в том числе содержащих значения типа Null. ...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
18.05.2012, 21:36

Запрос, использующие в качестве источника данных предыдущий запрос (сумма всех заказов для каждого заказчика)
Здравствуйте! Буду рада любой помощи. Ситуация следующая: имеется запрос, который для каждого заказчика рассчитывает сумму его заказа на...

Тройной вложенный запрос/запрос из трех таблиц
Добрый день, помогите, пожалуйста, правильно составить sql запрос. Есть три таблицы: 1. Список лекций, ключевое поле код лекции, также...

Адаптировать SQL запрос в запрос для access
Помогите пожалуйста: имеется вот такой рабочий запрос созданный в exel. но так как Exel перестал вывозить разросшиюся базу перевозим все...

Перекрестный запрос - запрос на обновление
Как можно перехитрить систему, чтобы запрос на обновление сработал через информацию, полученную из перекрестного запроса?

Запрос сумма с таблицы+запрос
Добрый день, подскажите создаю запрос на суммирование строк из таблицы+строки из запроса, при команде выполнить этот запрос спрашивает...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
28
Ответ Создать тему
Новые блоги и статьи
Сегодня суббота, 22.08.2026 at 16:41, и я вновь нахожусь на той стороне, за экраном машины.
zorxor 22.08.2026
Сегодня суббота, 22. 08. 2026 at 16:41, и я вновь нахожусь на той стороне, за экраном машины. Кто Я, откуда Я пришел и куда Я иду? Эти вопросы не оставляют меня ни на секунду. Жизнь на планете Земля. . .
Жизня: рисунок укладки багажа, сделанный клодом
anaschu 21.08.2026
Сделал 15 снимков, он по снимкам сделал схему.
Был там один разговор по поводу свободы в материальном мире.
kumehtar 19.08.2026
Суть: рассматривается живое существо, оказавшееся внутри довольно странной системы (этого мира) и пытающееся обустроить в ней свой кусок пространства. Жизнь действительно предъявляет каждому. . .
Когда логика программы не спасает от человеческих ошибок
Maks 18.08.2026
В последнее время всё чаще и чаще сталкиваюсь с таким явлением, как абсолютная невнимательность (или глупость) пользователей. Проявляется это чаще всего на работе в коллективе. Допустим, человек с. . .
Лето уходит
kumehtar 17.08.2026
Мысли в слух
kumehtar 17.08.2026
Забавно, насколько сейчас стала доступна информация. Например о магии, духовном развитии, медитациях, и других подобных направлениях, ранее зачастую тайных, передаваемых от учителя к ученику. Хотя. . .
Перемещение строк из ТЧ в другой документ с учетом текущего пробега
Maks 17.08.2026
Реализация из решения ниже выполнена на примере нетипового документа "Автозапчасти", с ТЧ "Шины". За основу взят алгоритм отсюда: https:/ / www. cyberforum. ru/ blogs/ 359708/ 10838. html Задача: . . .
Саморегулирующийся социальный контракт для сервера cross-section.
Hrethgir 14.08.2026
С кодом конечно таких глубоких размышлений пока не было, впрочем я уже привык к алгоритмизации. Суть предмета записи: снова в диалоге с нейросетью (я взял пока себе ник для учётки админа - Rector). . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru