Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > SQL, базы данных
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.04.2013, 04:20   #1
J4SSektor
 
Регистрация: 03.12.2012
Сообщений: 8
По умолчанию Запрос с объединением

Всем привет, есть 2 таблицы:
ДИСЦИПЛИНЫ
НОМЕР_ДИСЦИПЛИНЫ
НАЗВАНИЕ
НОМЕР_ПРЕПОДАВАТЕЛЯ
ЧАСЫ

УСПЕВАЕМОСТЬ
ОЦЕНКА
ДАТА
НОМЕР_СТУДЕНТА
НОМЕР_ДИСЦИПЛИНЫ

Нужно вывести список тех, кто сдал математику с первого раза. Я кое-что написал и вроде как правильно, но как сделать отбор на "с первого раза"?

SELECT *
FROM дисциплины д, успеваемость у
WHERE у.номер_дисциплины=д.номер_дисципли ны
AND д.название='Математика';

Последний раз редактировалось J4SSektor; 08.04.2013 в 04:24.
J4SSektor вне форума Ответить с цитированием
Старый 08.04.2013, 09:25   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

хороший вопрос..
я думаю, что из таблицы успеваемость нужно брать не все записи, а нужно взять только Математику и взять только первую запись по каждому студенту
Serge_Bliznykov вне форума Ответить с цитированием
Старый 08.04.2013, 09:32   #3
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,022
По умолчанию

субд как всегда супер секретное
having смотрите (а вось угадал...)
eval вне форума Ответить с цитированием
Старый 08.04.2013, 09:33   #4
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

С первой записью как-то не очень. ТС, успеваимость это что - текущие оценки или результаты сдачи? Если результаты сдачи - в случае неуда запись с двойкой создается или как? И лучше всего привести пример десятка записей таблицы успеваимость с ситуациями - сдал с первого раза, не с первого раза, вообще не сдавал.
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 08.04.2013, 15:19   #5
J4SSektor
 
Регистрация: 03.12.2012
Сообщений: 8
По умолчанию

Цитата:
Сообщение от eval Посмотреть сообщение
субд как всегда супер секретное
Oracle
Цитата:
Сообщение от Аватар Посмотреть сообщение
С первой записью как-то не очень. ТС, успеваимость это что - текущие оценки или результаты сдачи? Если результаты сдачи - в случае неуда запись с двойкой создается или как? И лучше всего привести пример десятка записей таблицы успеваимость с ситуациями - сдал с первого раза, не с первого раза, вообще не сдавал.
Результаты сдачи, да двойки записываются. Кстати да, может можно попробовать отфильтровать тех у кого 2 есть по матем. Таблицы тогда скину с данными (если надо).
CREATE TABLE УСПЕВАЕМОСТЬ
(НОМЕР NUMBER(5) NOT NULL,
ОЦЕНКА NUMBER(2) NOT NULL,
ДАТА DATE NOT NULL,
НОМЕР_СТУДЕНТА NUMBER(5) NOT NULL,
НОМЕР_ДИСЦИПЛИНЫ NUMBER(5) NOT NULL,
PRIMARY KEY(НОМЕР),
CHECK(ОЦЕНКА between 1 and 5),
FOREIGN KEY(НОМЕР_СТУДЕНТА)
REFERENCES СТУДЕНТЫ(НОМЕР_СТУДЕНТА),
FOREIGN KEY(НОМЕР_ДИСЦИПЛИНЫ)
REFERENCES ДИСЦИПЛИНЫ(НОМЕР_ДИСЦИПЛИНЫ));

CREATE TABLE ДИСЦИПЛИНЫ
(НОМЕР_ДИСЦИПЛИНЫ NUMBER(5, 0) PRIMARY KEY NOT NULL ENABLE,
НАЗВАНИЕ VARCHAR2(30),
НОМЕР_ПРЕПОДАВАТЕЛЯ NUMBER(5, 0),
ЧАСЫ NUMBER(2, 0) DEFAULT 0 NOT NULL ENABLE) ;

INSERT INTO ДИСЦИПЛИНЫ VALUES (2001 ,'Физика' ,4001,34 );
INSERT INTO ДИСЦИПЛИНЫ VALUES (2002 ,'Химия' ,4002,68 );
INSERT INTO ДИСЦИПЛИНЫ VALUES (2003 ,'Математика' ,4001,68 );
INSERT INTO ДИСЦИПЛИНЫ VALUES (2004 ,'Философия' ,4004 ,17 );
INSERT INTO ДИСЦИПЛИНЫ VALUES (2005 ,'Экономика' ,4005 ,17 );
INSERT INTO ДИСЦИПЛИНЫ VALUES (2006 ,'Менеджмент' , NULL ,34 );

INSERT INTO УСПЕВАЕМОСТЬ
VALUES ( NULL ,5 ,TO_DATE('10-июн-1999', 'dd-Mon-yyyy','NLS_DATE_LANGUAGE=RUSSIAN') ,3412 ,2001 );
INSERT INTO УСПЕВАЕМОСТЬ
VALUES ( NULL ,5 ,TO_DATE('10-июн-1999', 'dd-Mon-yyyy','NLS_DATE_LANGUAGE=RUSSIAN') ,3413 ,2001 );
INSERT INTO УСПЕВАЕМОСТЬ
VALUES ( NULL ,5 ,TO_DATE('12-июн-1999', 'dd-Mon-yyyy','NLS_DATE_LANGUAGE=RUSSIAN') ,3413 ,2003 );
INSERT INTO УСПЕВАЕМОСТЬ
VALUES ( NULL ,2 ,TO_DATE('10-июн-1999', 'dd-Mon-yyyy','NLS_DATE_LANGUAGE=RUSSIAN') ,3414 ,2001 );
INSERT INTO УСПЕВАЕМОСТЬ
VALUES ( NULL ,3 ,TO_DATE('15-июн-1999', 'dd-Mon-yyyy','NLS_DATE_LANGUAGE=RUSSIAN') ,3414 ,2005 );
INSERT INTO УСПЕВАЕМОСТЬ
VALUES ( NULL ,4 ,TO_DATE('12-июн-1999', 'dd-Mon-yyyy','NLS_DATE_LANGUAGE=RUSSIAN') ,3412 ,2003 );
INSERT INTO УСПЕВАЕМОСТЬ
VALUES ( NULL ,5 ,TO_DATE('12-июн-1999', 'dd-Mon-yyyy','NLS_DATE_LANGUAGE=RUSSIAN') ,3416 ,2003 );
INSERT INTO УСПЕВАЕМОСТЬ
VALUES ( NULL ,2 ,TO_DATE('12-июн-1999', 'dd-Mon-yyyy','NLS_DATE_LANGUAGE=RUSSIAN') ,3417 ,2003 );
INSERT INTO УСПЕВАЕМОСТЬ
VALUES ( NULL ,5 ,TO_DATE('12-июн-1999', 'dd-Mon-yyyy','NLS_DATE_LANGUAGE=RUSSIAN') ,3418 ,2003 );
INSERT INTO УСПЕВАЕМОСТЬ
VALUES ( NULL ,4 ,TO_DATE('18-июн-1999', 'dd-Mon-yyyy','NLS_DATE_LANGUAGE=RUSSIAN') ,3418 ,2006 );
INSERT INTO УСПЕВАЕМОСТЬ
VALUES ( NULL ,3 ,TO_DATE('15-июн-1999', 'dd-Mon-yyyy','NLS_DATE_LANGUAGE=RUSSIAN') ,3418 ,2005 );
J4SSektor вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Запрос с объединением таблиц vedro-compota SQL, базы данных 6 28.12.2010 12:57
Нужно описать структуру с объединением blinkapec Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 2 30.11.2010 12:40
Grid с объединением ячеек... Roof Компоненты Delphi 12 02.10.2009 13:19
перенос данных с объединением полей dreamMaster SQL, базы данных 6 25.07.2008 09:44