|
|
|
Трабел с повторяющимися записями
|
|||
|---|---|---|---|
|
#18+
У меня на сервере лежить табла в каторой введены оценки студентов в табле есть булевое поле пересдача (по умолчанию 0) если человек пересдаёт то получаеться что у одного и того же человека есть несколько записей.... Как выбрать всех людей и их оценки: 1) если у человека нет пересдачи тогда как бы всё просто 2) если есть то выводить только последнюю пересдачу.... На всякий случай для наглядности даю ещё и структуру таблы (tOzenkaVvod): NAME Type idOzenka bigint 'ключ fkPeople bigint 'идЧеловека fkDataSes bigint 'ключ по ГРупе Предмету и т.д. fkOzenka bigint 'идОценки Peresdacha bit 'то самое про которое гаварилось выше DATASdachi smalldatetime 'дата сдачи ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2004, 20:33 |
|
||
|
Трабел с повторяющимися записями
|
|||
|---|---|---|---|
|
#18+
A "idOzenka bigint ключ" - это счетчик с нарастающими значениями? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2004, 21:05 |
|
||
|
Трабел с повторяющимися записями
|
|||
|---|---|---|---|
|
#18+
Geo, это не должно быть важно! потому что это суррогатный ключ.\r \r Надо сделать что-то типа этого (только это примерчик на interbase)\r \r найти макимальную даты оценки, сгруппировав по человеку\r отобрать остальные поля про эту оценку ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2004, 21:12 |
|
||
|
Трабел с повторяющимися записями
|
|||
|---|---|---|---|
|
#18+
2fedd Это достаточно важно. Значения такого счетчика увеличиваются по мере добавления записей, и такая задача превращается в задачу аналогичную, скажем, последнему курсу, последней цене товара, многократно здесь обсуждаемой (и решаемой аналогично приведенному тобой запросу). То же самое справедливо для поля даты-времени, входящего в ключ. Иначе, например, если счетчик заполняется случайно, задача так не решится (last возвращает черт знает что, кто-то говорил, что чуть ли не последнюю запись в порядке чтения файла базы). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2004, 21:22 |
|
||
|
Трабел с повторяющимися записями
|
|||
|---|---|---|---|
|
#18+
ах, я забыл про last. он возвращяет запись с наибольшим счетчиком? тогда вроде бы проще. запутался в разных субд, как я говорил... а если без ласт и счетчик случайный, то задача решается как там. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2004, 21:35 |
|
||
|
Трабел с повторяющимися записями
|
|||
|---|---|---|---|
|
#18+
fedd> а если без ласт и счетчик случайный, то задача решается как там. эх-эхе... из ссылки> where ... T2.Dif = (SELECT MAX(T3.Dif) FROM Tab T3)) Это подразумевает какое-нибудь постоянно увеличивающееся поле. Ты-то что? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2004, 21:46 |
|
||
|
Трабел с повторяющимися записями
|
|||
|---|---|---|---|
|
#18+
нееет! это тот максимум, по которому мы находим нужную запись, а в нашем случае - это максимальная дата, когда сдавался экзамен. или у меня башня уже слетела.... ты мне скажи правду, я больше не буду людей путать.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2004, 22:02 |
|
||
|
Трабел с повторяющимися записями
|
|||
|---|---|---|---|
|
#18+
2fedd либо это дата-часть составного ключа, либо это каунтер-часть составного ключа, либо одно из двух. А вообще ты отгадал. А я пьяный. :)) Алаверды:) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2004, 22:21 |
|
||
|
|

start [/forum/topic.php?fid=45&msg=32401389&tid=1676772]: |
0ms |
get settings: |
7ms |
get forum list: |
23ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
63ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
66ms |
get tp. blocked users: |
2ms |
| others: | 229ms |
| total: | 413ms |

| 0 / 0 |
