Гость
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Базы данных Access: Сформировать запрос / 25 сообщений из 25, страница 1 из 1
17.03.2019, 20:58
    #39787428
Samyrro
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Базы данных Access: Сформировать запрос
Есть некая база данных студентов в Access 2016. Необходимо сформировать запрос на выборку, который отобразит всех студентов, у которых нет ни одной оценки "2". Если есть хотя бы одна двойка - студента в результатах запроса в принципе не должно быть. Как это сделать? Помогите!!!
...
Рейтинг: 0 / 0
17.03.2019, 21:12
    #39787434
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Базы данных Access: Сформировать запрос
Код: sql
1.
2.
3.
4.
5.
SELECT список полей
FROM таблица
WHERE студент NOT IN (SELECT студент
                      FROM таблица 
                      WHERE оценка = 2)
...
Рейтинг: 0 / 0
17.03.2019, 23:55
    #39787483
Samyrro
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Базы данных Access: Сформировать запрос
спасибо, то что надо!!!
...
Рейтинг: 0 / 0
29.05.2019, 20:17
    #39820051
Медет
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Базы данных Access: Сформировать запрос
Доброго времени суток!

Не могу решить одну простую задачу! Возможно с Вашей помощью решу!
В условии запроса использовано поле формы. В русской системе виндоус и в русском оффисе работает и проблем нет, но в ангийском виндоус и английском оффисе возникает проблема - всплывает окно с требованием введение параметра и при этом наименование ошибки начинается с Формы!...., хотя в условии запроса синтаксис заложен через Forms!...
Не пойму в чем ошибка и как от нее избавиться
...
Рейтинг: 0 / 0
30.05.2019, 03:54
    #39820134
Панург
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Базы данных Access: Сформировать запрос
Медет, использовать не локализованную версию или делать функции которые будут возвращать значения контролов.
...
Рейтинг: 0 / 0
30.05.2019, 03:55
    #39820135
Панург
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Базы данных Access: Сформировать запрос
+ не использовать пробелов в наименованиях.
...
Рейтинг: 0 / 0
30.05.2019, 04:08
    #39820136
982183
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Базы данных Access: Сформировать запрос
Akina
Код: sql
1.
2.
3.
4.
5.
SELECT список полей
FROM таблица
WHERE студент NOT IN (SELECT студент
                      FROM таблица 
                      WHERE оценка = 2)


Ну так получим все оценки не равные 2
А сгруппировать?

Код: sql
1.
2.
3.
4.
SELECT список полей
FROM таблица
GROUP BY студент
HAVING MIN(ОЦЕНКА)<> 2
...
Рейтинг: 0 / 0
30.05.2019, 05:37
    #39820137
Панург
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Базы данных Access: Сформировать запрос
Медет, а почему ты пишешь в чужие топики?
...
Рейтинг: 0 / 0
30.05.2019, 06:00
    #39820138
982183
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Базы данных Access: Сформировать запрос
Это если у него одна таблица, где и фио и оценки.
Но скорее всего таблиц две.

Код: sql
1.
2.
3.
4.
5.
SELECT список полей
FROM таблицастудентов
WHERE студент NOT IN (SELECT студент
                      FROM таблицаоценок 
                      WHERE оценка = 2)



Код: sql
1.
2.
3.
4.
5.
SELECT список полей
FROM таблицастудентов, таблица оценок
WHERE таблицастудентов.студент = таблицаоценок.студент
GROUP BY студент
HAVING MIN(ОЦЕНКА)<> 2
...
Рейтинг: 0 / 0
30.05.2019, 06:33
    #39820141
Панург
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Базы данных Access: Сформировать запрос
982183, на дату стартового поста посмотри

уже всё перетёрли
...
Рейтинг: 0 / 0
30.05.2019, 06:55
    #39820145
Медет
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Базы данных Access: Сформировать запрос
ПанургМедет, а почему ты пишешь в чужие топики?

Не хотел плодить подобных тем.
Я тут новенький! Необходимо создавать свои темы?
Локализованная версия - это значит английская установка?
За подсказку спасибо!
...
Рейтинг: 0 / 0
30.05.2019, 07:01
    #39820146
Панург
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Базы данных Access: Сформировать запрос
МедетНе хотел плодить подобных тем.В каком месте он подобный?
МедетЯ тут новенький! Необходимо создавать свои темы? Правила прочитай и ознакомься с рекомендациями подфорума
...
Рейтинг: 0 / 0
30.05.2019, 07:26
    #39820152
982183
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Базы данных Access: Сформировать запрос
Панург982183, на дату стартового поста посмотри
уже всё перетёрли
Согласен.
Но тут чистая теория.
Сейчас придет Akina и констатирует какой я балбес.
тут есть два подхода к стандартной ситуации.
Осталось понять боле рациональный
...
Рейтинг: 0 / 0
30.05.2019, 07:44
    #39820160
982183
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Базы данных Access: Сформировать запрос
Код: sql
1.
2.
3.
4.
5.
6.
SELECT список полей
FROM таблицастудентов
WHERE студент IN (SELECT студент
                  FROM таблицаоценок 
                  group by студент
                  having min(оценка) <>2)
...
Рейтинг: 0 / 0
30.05.2019, 07:45
    #39820162
982183
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Базы данных Access: Сформировать запрос
Вариант3
...
Рейтинг: 0 / 0
30.05.2019, 07:46
    #39820163
Панург
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Базы данных Access: Сформировать запрос
982183, а что тут теоретического? В первом случае ( 21897360 ) запрос обновляемый, во втором нет. Нужна скорость? Джойн будет быстрее при прочих равных, с подчинённым запросом самый медленный. Запрос с группировкой, ИМХО, вообще за гранью...
...
Рейтинг: 0 / 0
30.05.2019, 07:47
    #39820165
Панург
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Базы данных Access: Сформировать запрос
982183Вариант3см предыдущий ответ
...
Рейтинг: 0 / 0
30.05.2019, 08:31
    #39820178
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Базы данных Access: Сформировать запрос
982183так получим все оценки не равные 2Здрасьте, приехали... посмотри внимательнее.
982183А сгруппировать?

Код: sql
1.
2.
3.
4.
SELECT список полей
FROM таблица
GROUP BY студент
HAVING MIN(ОЦЕНКА)<> 2

Ага. В Аксессе. Неполная группировка. Щазз!
К тому же, допускай Акс такое, если у студента есть единица - он будет выведен вне зависимости от наличия двойки.
...
Рейтинг: 0 / 0
30.05.2019, 12:29
    #39820283
sdku
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Базы данных Access: Сформировать запрос
или такое выражение: sum(iif(оценка=2;1;0)) и отбор по этому полю=0-студенты у которых нет двоек
...
Рейтинг: 0 / 0
30.05.2019, 12:57
    #39820293
sdku
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Базы данных Access: Сформировать запрос
...
Рейтинг: 0 / 0
30.05.2019, 13:27
    #39820302
982183
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Базы данных Access: Сформировать запрос
AkinaЗдрасьте, приехали... посмотри внимательнее.
далее я подкорректировал оба варианта
21897360

двойка/единица тут вопрос не принципиальный вместо <> ставим >

(Всю жизнь работал с инструментом, где нет "IN" каждый раз как вижу - принять не могу)

sdku - HAVING всё равно делать надо.
а зачем выносить поле для фильтрации в select?

WHERE / JOIN тут не принцииально
...
Рейтинг: 0 / 0
30.05.2019, 13:56
    #39820318
sdku
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Базы данных Access: Сформировать запрос
982183sdku - HAVING всё равно делать надо.
Код: vbnet
1.
2.
3.
SELECT учащиеся.учащийся, Sum(IIf([оценка]=2,1,0)) AS скДвоек
FROM учащиеся INNER JOIN (предметы INNER JOIN успеваемость ON предметы.КодП = успеваемость.предмет) ON учащиеся.КодУ = успеваемость.учащийся
GROUP BY учащиеся.учащийся;

Стесняюсь спросить:а хде здесь HAVING?
и чем Вас не устраивает группировка?
982183а зачем выносить поле для фильтрации в select?а куда? (ведь это выражение,а не условие отбора)
...
Рейтинг: 0 / 0
30.05.2019, 16:42
    #39820410
Панург
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Базы данных Access: Сформировать запрос
982183Всю жизнь работал с инструментом, где нет "IN" каждый раз как вижу - принять не могуИспользуй =Any
...
Рейтинг: 0 / 0
30.05.2019, 16:47
    #39820412
Панург
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Базы данных Access: Сформировать запрос
sdku
Код: sql
1.
-Sum([оценка]=2) AS скДвоек 

и так хватит
...
Рейтинг: 0 / 0
30.05.2019, 17:47
    #39820446
sdku
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Базы данных Access: Сформировать запрос
Панург....и так хватитВполне
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Базы данных Access: Сформировать запрос / 25 сообщений из 25, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]