![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 13.12.2008
Сообщений: 75
|
![]()
Здравствуйте!
Приложение делфи и аксесс.Есть две таблицы: студенты и контракты.В таблице контракты - курс и семестр обучения,соответственно связь с конкретным студентом в таблице студенты. Необходимо написать такой запрос, чтобы вывести студентов,которые НЕ оплатили обучение за определенный семестр. Как вывести тех, кто оплатил, понятно, а вот наоборот- не знаю. Заранее спасибо! |
![]() |
![]() |
![]() |
#2 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]() Цитата:
Покажи запрос тех кто оплатил.
I'm learning to live...
|
|
![]() |
![]() |
![]() |
#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; Это параметрический запрос,чтоб вывести тех,кто оплатил |
![]() |
![]() |
![]() |
#4 | |
Форумчанин
Регистрация: 05.02.2009
Сообщений: 324
|
![]()
если я правильно понял
Цитата:
тогда если запрос изменить таким образом: Код:
Код:
Тяжело быть бестолковым.....
![]() |
|
![]() |
![]() |
![]() |
#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 |
![]() |
![]() |
![]() |
#6 |
Форумчанин
Регистрация: 05.02.2009
Сообщений: 324
|
![]()
а не проще ввести ещё одно поле в таблицу kontract в котором бы отмечалось платил студент за определённый курс или нет
Тяжело быть бестолковым.....
![]() |
![]() |
![]() |
![]() |
#7 |
Пользователь
Регистрация: 13.12.2008
Сообщений: 75
|
![]()
ну тогда придется создавать полей 8, потому что учеба 4 года ,платить по семестрам)
|
![]() |
![]() |
![]() |
#8 |
Форумчанин
Регистрация: 05.02.2009
Сообщений: 324
|
![]()
нет, тогда для каждого контрактника в таблице конракт будет 8 записей, если он всё вовремя заплатил и закончил учёбу. например:
1 курс 1 семестр заплатил 1 курс 2 семестр заплатил ................................... .......... 4 курс 2 семест заплатил
Тяжело быть бестолковым.....
![]() |
![]() |
![]() |
![]() |
#9 |
Пользователь
Регистрация: 13.12.2008
Сообщений: 75
|
![]()
и как эти записи там появятся? вручную что ли создавать на все 4 курса для каждого?
|
![]() |
![]() |
![]() |
#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 |