|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
09.07.2010, 14:18 | #1 |
Пользователь
Регистрация: 01.05.2010
Сообщений: 18
|
sql запрос
Доброго всем времени суток.
Пишу программу в делфи для деканата, в которой будет возможно следить за количеством долгов студентов. Т.к с языком sql я практически не знаком сталкнулся с такой проблемой: Есть две таблицы Студенты(поля:номер зачетки,ФИО,группа,телефон) и Здача_экзамена(поля:номер зачетки,предмет,отценка) нужно составить запрос в результате которого образуется таблица состоящая из всех полей табл. Студенты и поля Кол-во_задолжностей в котором будет кол-во проваленных данным студентом экзаменнов. Заранее огомное спасибо всем откликнувшимся |
09.07.2010, 14:26 | #2 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
что-то вроде:
Код:
I'm learning to live...
|
09.07.2010, 14:45 | #3 |
Пользователь
Регистрация: 01.05.2010
Сообщений: 18
|
На данный момент я сделал вот такой запрос
SELECT Студент.ФИО, Студент.Номер_зачетки, [Здача экзамена].Оценка_по_экзамену FROM Студент INNER JOIN [Здача экзамена] ON Студент.Номер_зачетки = [Здача экзамена].Номер_зачетки WHERE ((([Здача экзамена].Оценка_по_экзамену)=2)); При попытке переделать вот так SELECT Студент.ФИО, Студент.Номер_зачетки, count([Здача экзамена].Оценка_по_экзамену) as [Кол-во_задолжностей] FROM Студент INNER JOIN [Здача экзамена] ON Студент.Номер_зачетки = [Здача экзамена].Номер_зачетки WHERE ((([Здача экзамена].Оценка_по_экзамену)=2)); выдал ошибку, к томуж мне кажется таким образом мы наладим связь м\у студентом и общим кол-вом задолжностей, а не м\у студентом и кол-вом именно его задолжностей, хотя могу ошибаться |
10.07.2010, 00:07 | #4 |
Пользователь
Регистрация: 01.05.2010
Сообщений: 18
|
Плиз, помогите составить запрос, либо подскажите литературу с помощью которой можно быстро разобраться с языком запросов
|
10.07.2010, 01:37 | #5 |
Пользователь
Регистрация: 01.05.2010
Сообщений: 18
|
Все, с задачей справился вот таким образом:
for i:=1 to dataModule5.studTable.RecordCount do begin DataModule5.studTable.Edit; DataModule5.studTable.RecNo:=i; DataModule5.ADOQuery1.Active:=false ; DataModule5.ADOQuery1.SQL.Clear; DataModule5.ADOQuery1.SQL.Add('SELE CT Студент.ФИО, Студент.Номер_зачетки, [Здача экзамена].Оценка_по_экзамену'); DataModule5.ADOQuery1.SQL.Add('FROM Студент INNER JOIN [Здача экзамена] ON Студент.Номер_зачетки=[Здача экзамена].Номер_зачетки'); DataModule5.ADOQuery1.SQL.Add('WHER E (((Студент.Номер_зачетки)="'+DataMo dule5.studTable.Fields.Fields[0].AsString+'")'); DataModule5.ADOQuery1.SQL.Add('AND (([Здача экзамена].Оценка_по_экзамену)=2));'); DataModule5.ADOQuery1.Active:=true; datamodule5.studTable.FieldValues['Кол-во задолжностей']:=DataModule5.ADOQuery1.RecordCount ; datamodule5.studTable.Post; Последний раз редактировалось loki22208; 10.07.2010 в 01:39. |
10.07.2010, 07:11 | #6 | |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
loki22208
ну, хотя Вы уже решили свою задачу, я всё равно скажу, что именно у Вас не получалось! Так, кратенько... смотрите, Ваш код в Дельфи вернёт что? КОЛИЧЕСТВО записей, которые выбрались с оценкой 2. Так? Так возьмите свой второй вариант запроса и выкиньте из запроса фамилию студента и прочее.. будет так: Цитата:
Попробуйте какому то студенту добавить двойки по нескольким предметам. Сколько двоек добавите, столько записей и будет в выборке... И последнее, задание стоит как? Найти не общее число проваленных экзаменов, а по "данному студенту" (да и выбрать надо "таблица состоящая из всех полей табл. Студ") В этом Вам поможет такой запрос: Код:
Последний раз редактировалось Serge_Bliznykov; 10.07.2010 в 07:15. |
|
12.07.2010, 23:56 | #7 |
Пользователь
Регистрация: 01.05.2010
Сообщений: 18
|
Serge_Bliznykov спасибо, так и действительно проще и рациональнее.
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Запрос с CASE переделать в запрос с PIVOT (MS SQL Server 2005) | Машуля | SQL, базы данных | 4 | 06.05.2010 21:09 |
Запрос в SQL | Jasper92 | SQL, базы данных | 2 | 12.01.2010 16:58 |
Создание новых таблиц в MS SQL SERVERE через SQL запрос в Delphi | S_Yevgeniy | Помощь студентам | 1 | 27.10.2009 06:26 |
SQL запрос | SERG1980 | БД в Delphi | 6 | 19.10.2007 23:03 |
SQL запрос на основе другого SQL запрса... | Timoxa | БД в Delphi | 1 | 07.01.2007 18:15 |