Модераторы: LSD

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> select выборочно 
:(
    Опции темы
KaKTyCc
Дата 12.6.2006, 14:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 247
Регистрация: 2.8.2005

Репутация: 1
Всего: 1



Код

select l.name_disciplina, p.hours_all, j.ball, l.cod_disciplina  
from metodist.lessons l, metodist.plans p, metodist.work_plans wp,
metodist.journal_progress j where j.id_student = :IdS 
 and j.id_work_plan=wp.id_work_plan and p.id_plan=wp.id_plan 
and  l.id_disciplina=p.id_disciplina and wp.session_type=:sType


запрос возвращает все результаты экзаменов, которые изучал студент
вся проблема в том, что некоторые предметы изучались два раза, три раза, и по ним были экзамены
меня интересует последний результат (который идет в диплом), как выбрать именно эту запись 
подскажите
  

Это сообщение отредактировал(а) KaKTyCc - 12.6.2006, 14:38
--------------------
Мой блог
PM MAIL WWW   Вверх
DeadSoul
Дата 12.6.2006, 14:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник
Сообщений: 1217
Регистрация: 25.9.2005
Где: Москва

Репутация: нет
Всего: 11



Можешь струтуры таблиц нарисовать? В коде читать сложнее

Добавлено @ 14:50 
В общем основная идея:
Таблица Marks
- MarkId
- StudentFK
- SubjectFK
- Mark <- балл
- ExamDate 

Код

SELECT * FROM Marks A WHERE 
NOT EXISTS
(
  SELECT * FROM Marks B WHERE A.StudentFK=B.StudentFK AND A.SubjectFK=B.SubjectFK AND A.ExamDate>B.ExamDate
)


Данный запрос вернет все последние студенто-экзамены
  

Это сообщение отредактировал(а) DeadSoul - 12.6.2006, 15:40


--------------------
 Если Вы получили ответ на Ваш вопрос, то нажмите на "Вопрос решен". 

Бьем спамеров их же оружием. Пусть весь спам сыпется им
[email protected] 
PM   Вверх
KaKTyCc
Дата 12.6.2006, 15:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 247
Регистрация: 2.8.2005

Репутация: 1
Всего: 1



DeadSoul, не понял ничиго smile

 
--------------------
Мой блог
PM MAIL WWW   Вверх
DeadSoul
Дата 12.6.2006, 15:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник
Сообщений: 1217
Регистрация: 25.9.2005
Где: Москва

Репутация: нет
Всего: 11



Я решил тебе аналогичную задачу.

Структуру таблицы ты понял? 


--------------------
 Если Вы получили ответ на Ваш вопрос, то нажмите на "Вопрос решен". 

Бьем спамеров их же оружием. Пусть весь спам сыпется им
[email protected] 
PM   Вверх
KaKTyCc
Дата 12.6.2006, 15:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 247
Регистрация: 2.8.2005

Репутация: 1
Всего: 1



я не понял этого A.ExamMark>B.ExamMark

ты сравниваешь полученные оценки? зачем?
смотри:
1 семестр - Математический анализ 4
2 семестр - Математический анализ  3

получить мне надо Математический анализ  3 в выписке

щас вот подумал, брать по семестру
хех, пошел пробовать  smile 
 
 
--------------------
Мой блог
PM MAIL WWW   Вверх
DeadSoul
Дата 12.6.2006, 15:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник
Сообщений: 1217
Регистрация: 25.9.2005
Где: Москва

Репутация: нет
Всего: 11



Цитата(KaKTyCc @  12.6.2006,  15:34 Найти цитируемый пост)
я не понял этого A.ExamMark>B.ExamMark

Опечатался. Естественно сравнивать там надо времяsmile. Уже исправил 


--------------------
 Если Вы получили ответ на Ваш вопрос, то нажмите на "Вопрос решен". 

Бьем спамеров их же оружием. Пусть весь спам сыпется им
[email protected] 
PM   Вверх
KaKTyCc
Дата 12.6.2006, 15:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 247
Регистрация: 2.8.2005

Репутация: 1
Всего: 1



в общем нихрена не получается, не представляю себе как это сделать
задействованы 4 таблицы 

как сравнить семестры  smile

Добавлено @ 15:47 
а почему NOT EXISTS  smile 
блин запутался, надо передохуть немного  
--------------------
Мой блог
PM MAIL WWW   Вверх
Sqlninja
Дата 12.6.2006, 15:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 353
Регистрация: 15.5.2006
Где: San Francisco, CA

Репутация: 13
Всего: 13



надо чтобы каждый экзамен имел SEMESTR_ID. иначе никак. 


--------------------
It's better to burn out than to fade away.
PM MAIL WWW ICQ   Вверх
KaKTyCc
Дата 12.6.2006, 15:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 247
Регистрация: 2.8.2005

Репутация: 1
Всего: 1



все понял насчет NOT EXISTS  smile

Добавлено @ 15:52 
Sqlninja, он имеет, только тут несколько таблиц, я запутался

из того запроса что в первом топе

semestr есть в таблице plans p 
--------------------
Мой блог
PM MAIL WWW   Вверх
skyboy
Дата 12.6.2006, 16:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: нет
Всего: 260



KaKTyCc, набросай список/структуры таблиц, а? 
PM MAIL   Вверх
Sqlninja
Дата 12.6.2006, 16:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 353
Регистрация: 15.5.2006
Где: San Francisco, CA

Репутация: 13
Всего: 13



Код

AND semestr_id = (SELECT MAX(semestr_id) FROM plans,... WHERE discipline_id = discipline_id and ...)


структуру таблиц не дал и хочешь чтобы тебе запрос написали.  smile  


--------------------
It's better to burn out than to fade away.
PM MAIL WWW ICQ   Вверх
KaKTyCc
Дата 12.6.2006, 16:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 247
Регистрация: 2.8.2005

Репутация: 1
Всего: 1



Цитата

структуру таблиц не дал и хочешь чтобы тебе запрос написали.  smile


 smile 

Код

CREATE TABLE JOURNAL_PROGRESS  --журнал успеваемости
(
  ID_JOURNAL_PROGRESS  NUMBER(6)                NOT NULL,
  ID_STUDENT           NUMBER(6)                NOT NULL,
  ID_WORK_PLAN         NUMBER(6)                NOT NULL,
  BEGIN_SESSION        DATE,
  END_SESSION          DATE,
  BALL                 NUMBER(1),
  RATING               NUMBER(3),
  DATE_SDACHA          DATE,
  ZACHET_BALL          VARCHAR2(1 CHAR),
  POPITKA              NUMBER(1),
  DATE_PERESDACHA      DATE,
  NOTES                VARCHAR2(50 CHAR)
)


CREATE TABLE LESSONS  --список всех предметов
(
  ID_DISCIPLINA    NUMBER(6)                    NOT NULL,
  COD_DISCIPLINA   VARCHAR2(10 CHAR),
  NAME_DISCIPLINA  VARCHAR2(130 CHAR),
  DEL              NUMBER(1)                    DEFAULT 0
)

CREATE TABLE PLANS --учебный план (предметы берутся из LESSONS)
(
  ID_PLAN          NUMBER(6)                    NOT NULL,
  SEMESTR          NUMBER(2)                    NOT NULL,
  ID_SPECIALITY    NUMBER(6)                    NOT NULL,
  EXAM             NUMBER(2),
  ZACHET           NUMBER(2),
  KURS_WORK        NUMBER(2),
  HOURS_ALL        NUMBER(3),
  HOURS_AUDIT      NUMBER(3),
  HOURS_LESSON     NUMBER(3),
  HOURS_LAB        NUMBER(3),
  HOURS_PRAC_SEM   NUMBER(3),
  LERN_PRAC        NUMBER(2),
  WORK_PRAC_IND    NUMBER(2),
  WORK_PRAC_GROUP  NUMBER(2),
  ID_CAFEDRA       NUMBER(6)                    NOT NULL,
  FORM             VARCHAR2(10 CHAR)            NOT NULL,
  DEL              NUMBER(1)                    DEFAULT 0,
  ID_DISCIPLINA    NUMBER(6)                    DEFAULT NULL                  NOT NULL
)

CREATE TABLE WORK_PLANS  --здесь закрепление преподавателей, групп за учебный план
(
  ID_WORK_PLAN  NUMBER(6)                       NOT NULL,
  ID_PLAN       NUMBER(6)                       NOT NULL,
  ID_GROUP      NUMBER(6)                       NOT NULL,
  ID_TEACHER    NUMBER(6),
  SESSION_TYPE  VARCHAR2(10 CHAR)
)

 
--------------------
Мой блог
PM MAIL WWW   Вверх
DeadSoul
Дата 12.6.2006, 20:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник
Сообщений: 1217
Регистрация: 25.9.2005
Где: Москва

Репутация: нет
Всего: 11



Цитата(KaKTyCc @  12.6.2006,  15:51 Найти цитируемый пост)
все понял насчет NOT EXISTS  

Осталось сделать INNER JOIN не с таблицей Marks(или твоим аналогом), а с результатом моего запросаsmile 


--------------------
 Если Вы получили ответ на Ваш вопрос, то нажмите на "Вопрос решен". 

Бьем спамеров их же оружием. Пусть весь спам сыпется им
[email protected] 
PM   Вверх
skyboy
Дата 13.6.2006, 09:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: нет
Всего: 260



структуру базыменять можешь? или уже нет? 
PM MAIL   Вверх
KaKTyCc
Дата 13.6.2006, 10:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 247
Регистрация: 2.8.2005

Репутация: 1
Всего: 1



skyboy, в принципе могу, а что, есть косяки?  smile  
--------------------
Мой блог
PM MAIL WWW   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Oracle"
Zloxa
LSD

Данный раздел предназначен для обсуждения проблем с Oracle Database, другие продукты Oracle здесь не обсуждаются. Просьба при создании темы, придерживаться следующих правил:

  • при создании темы давайте ей осмысленное название, описывающее суть проблемы
  • указывайте используемую версию базы, способ соединения и язык программирования
  • при ошибках обязательно приводите код ошибки и сообщение сервера
  • приводите код в котором возникла ошибка, по возможности дайте тестовый пример демонстрирующий ошибку
  • при вставке кода используйте соответсвующие теги: [code=sql] [/code] для подсветки SQL и PL/SQL кода, [code=java] [/code] - для Java, и т.д.

  • документация по Oracle: 9i, 10g, 11g
  • книги по Oracle можно поискать здесь
  • действия модераторов можно обсудить здесь

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Zloxa, LSD.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Oracle | Следующая тема »


 




[ Время генерации скрипта: 0.0887 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.