Как выбрать учеников, которые пропустили определенный класс 3 или более раз? - PullRequest
0 голосов
/ 05 апреля 2019

У меня есть таблица tbl1Assiduidade, в которой присутствует посещаемость студентов.В этой таблице есть имя ученика, дата, класс, посещаемость.Он получает эти значения из других таблиц и сохраняет их в соответствующих строках: Nome, Data, UFCD, Assiduidade.Строка «Assiduidade» (посещаемость) имеет предварительно определенные значения:

Если ученик присутствует в классе, то «Assiduidade» = 1. Если ученик отсутствует, то «Assiduidade» = 2

.

Если ученик пропускает один и тот же класс 3 раза, он проваливает этот класс

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

Очевидно, что с моим кодом что-то не так, если не все, я много искал и не нашел того, что ищузаранее спасибо за помощь!

Private Sub Comando192_Click()

Me.RecordSource = "SELECT tbl1Assiduidade.Nome, tbl1Assiduidade.UFCD 
FROM tbl1Assiduidade 
HAVING COUNT (tbl1Assiduidade.Assiduidade FROM tbl1Assiduidade WHERE tbl1Assiduidade.Assiduidade = 2) > = 3"

Me.Requery


End Sub

Ответы [ 2 ]

1 голос
/ 05 апреля 2019
  • Выбрать все записи , где tbl1Assiduidade.Assiduidade = 2
  • Группа записей по Name & UFCD.
  • Выберите группы , имеющие 3 или более записей.

    select t.Nome, t.UFCD 
    from tbl1Assiduidade t
    where t.Assiduidade = 2
    group by t.Nome, t.UFCD 
    having count(*) > 2
    
0 голосов
/ 05 апреля 2019

нет необходимости подзапрос, вы можете попробовать, как показано ниже, используя фильтр

SELECT tbl1Assiduidade.Nome,
 tbl1Assiduidade.UFCD 
 FROM tbl1Assiduidade 
 bl1Assiduidade.Assiduidade = 2
group by tbl1Assiduidade.Nome,
 tbl1Assiduidade.UFCD
 having count(*)>=3
...