|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
17.05.2010, 16:49 | #1 |
Пользователь
Регистрация: 13.12.2008
Сообщений: 75
|
SQL запрос. вывести студентов,которые НЕ оплатили обучение за определенный семестр
Здравствуйте!
Приложение делфи и аксесс.Есть две таблицы: студенты и контракты.В таблице контракты - курс и семестр обучения,соответственно связь с конкретным студентом в таблице студенты. Необходимо написать такой запрос, чтобы вывести студентов,которые НЕ оплатили обучение за определенный семестр. Как вывести тех, кто оплатил, понятно, а вот наоборот- не знаю. Заранее спасибо! |
17.05.2010, 17:19 | #2 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Цитата:
Покажи запрос тех кто оплатил.
I'm learning to live...
|
|
17.05.2010, 17:52 | #3 |
Пользователь
Регистрация: 13.12.2008
Сообщений: 75
|
select *
from student inner join kontrakt on student.id_st=kontrakt.id_st where student.kontrakt=true and kontrakt.kurs= :kurs and kontrakt.semestr= :semestr; Это параметрический запрос,чтоб вывести тех,кто оплатил |
17.05.2010, 18:37 | #4 | |
Форумчанин
Регистрация: 05.02.2009
Сообщений: 324
|
если я правильно понял
Цитата:
тогда если запрос изменить таким образом: Код:
Код:
Тяжело быть бестолковым.....
|
|
17.05.2010, 18:43 | #5 |
Пользователь
Регистрация: 13.12.2008
Сообщений: 75
|
нет,не так)
поле kontrakt в таблице студент просто указывает на то, что студент учится на контракте. Вся информация об оплате уже содержится в таблице контракт. Поэтому этот код: select * from student inner join kontrakt on student.id_st=kontrakt.id_st where student.kontrakt=false and kontrakt.kurs= :kurs and kontrakt.semestr= :semestr; вообще ничего не выведет, поскольку это бюджетники и, конечно, контракт они не оплачивали. Поле student.kontrakt должно быть по-любому true |
17.05.2010, 18:53 | #6 |
Форумчанин
Регистрация: 05.02.2009
Сообщений: 324
|
а не проще ввести ещё одно поле в таблицу kontract в котором бы отмечалось платил студент за определённый курс или нет
Тяжело быть бестолковым.....
|
17.05.2010, 19:14 | #7 |
Пользователь
Регистрация: 13.12.2008
Сообщений: 75
|
ну тогда придется создавать полей 8, потому что учеба 4 года ,платить по семестрам)
|
17.05.2010, 19:26 | #8 |
Форумчанин
Регистрация: 05.02.2009
Сообщений: 324
|
нет, тогда для каждого контрактника в таблице конракт будет 8 записей, если он всё вовремя заплатил и закончил учёбу. например:
1 курс 1 семестр заплатил 1 курс 2 семестр заплатил ................................... .......... 4 курс 2 семест заплатил
Тяжело быть бестолковым.....
|
17.05.2010, 19:30 | #9 |
Пользователь
Регистрация: 13.12.2008
Сообщений: 75
|
и как эти записи там появятся? вручную что ли создавать на все 4 курса для каждого?
|
17.05.2010, 20:44 | #10 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
если я правильно понял, чтобы найти неоплативших студентов достаточен такой запрос:
Код:
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Вывести на экран номера всех элементов, которые не делятся на 7 | wrangler | Общие вопросы C/C++ | 5 | 10.12.2009 15:37 |
:'( вывести даты которые прошли... | Julia_Lisha | SQL, базы данных | 1 | 17.05.2009 13:44 |
Из чисел 1, 1+ 1/2, 1+1/2+1/3 , … вывести на экран те, которые меньше а. | umiko | Microsoft Office Excel | 1 | 16.05.2009 08:29 |
Рассортировать по возрастанию и вывести на печать список студентов. | Sergeo_89 | Фриланс | 6 | 09.12.2008 13:51 |