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

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

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 02.09.2009, 14:17   #11
SuperVisor
Павел Сергеевич
Форумчанин
 
Регистрация: 05.11.2006
Сообщений: 665
По умолчанию

Цитата:
Сообщение от artemavd Посмотреть сообщение
SuperVisor, правильно ли я понял как переделать Ваш запрос на SQL? ...
И вот на SQL:
Код:
select ID,FIO, count('2')
from spisok,mark 
where (mark.With_spisok=spisok.ID) and (Mark_jur=2)
Нет, этот запрос Вам не должен вернуть ничего хорошего... И, скорее всего, он будет ругаться на синтаксис. Если бы вы использовали такой формат:
Код:
select spisok.ID,spisok.FIO, count(Mark.ID)
from spisok,mark 
where (mark.With_spisok=spisok.ID) and (Mark_jur=2)
То он бы вернул Вам только количество двоек ученика, я же предлагаю одним запросом получить количество двоек, троек, четверок и пятерок ученика (+ его ID и ФИО, естественно)
Познавая других, мы познаем себя.
С'est la vie...
SuperVisor вне форума Ответить с цитированием
Старый 02.09.2009, 15:17   #12
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,206
По умолчанию

А что еще добавится в запросе, чтобы считалось количество не только двоек, но и других оценок? На счет таблиц. Я же выложил таблицы во вложении?
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.

Последний раз редактировалось artemavd; 02.09.2009 в 15:20.
artemavd вне форума Ответить с цитированием
Старый 02.09.2009, 15:22   #13
SuperVisor
Павел Сергеевич
Форумчанин
 
Регистрация: 05.11.2006
Сообщений: 665
По умолчанию

Код:
select spisok.ID, spisok.FIO,
  (select count(mark.ID) from mark where mark.with_spisok=spisok.id and mark.mark_jur=2) dva, 
  (select count(mark.ID) from mark where mark.with_spisok=spisok.id and mark.mark_jur=3) tri,
  (select count(mark.ID) from mark where mark.with_spisok=spisok.id and mark.mark_jur=4) chet,
  (select count(mark.ID) from mark where mark.with_spisok=spisok.id and mark.mark_jur=5) pyat
from spisok
Наверное, как-то так.. Смотрите синтаксис SQL.
Познавая других, мы познаем себя.
С'est la vie...
SuperVisor вне форума Ответить с цитированием
Старый 02.09.2009, 16:56   #14
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,206
По умолчанию

Я чуть подправил код выше на такой:
Код:
select spisok.ID, spisok.Familiy,spisok.Imy,spisok.Otchest,
  (select count(mark.ID) from mark where mark.with_spisok=spisok.id and mark.mark_jur='2') dva,
  (select count(mark.ID) from mark where mark.with_spisok=spisok.id and mark.mark_jur='3') tri,
  (select count(mark.ID) from mark where mark.with_spisok=spisok.id and mark.mark_jur='4') chet,
  (select count(mark.ID) from mark where mark.with_spisok=spisok.id and mark.mark_jur='5') pyat
from spisok
Но в результате запроса количество оценок равно 0. Все значения равны 0.
????
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 02.09.2009, 17:28   #15
quit
Я есть!
Форумчанин
 
Аватар для quit
 
Регистрация: 17.02.2008
Сообщений: 318
По умолчанию

Цитата:
Сообщение от artemavd Посмотреть сообщение
Но в результате запроса количество оценок равно 0. Все значения равны 0.
????
А ты уверен что spisok.id не null или 0?..
точнее, связь между таблицами через id точно присутствует?
©Учиться, учиться и еще раз учиться!
quit вне форума Ответить с цитированием
Старый 02.09.2009, 17:37   #16
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,206
По умолчанию

Цитата:
А ты уверен что spisok.id не null или 0?..
В смысле есть ли там записи?
Цитата:
точнее, связь между таблицами через id точно присутствует?
Связь задается программно..
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 02.09.2009, 17:45   #17
quit
Я есть!
Форумчанин
 
Аватар для quit
 
Регистрация: 17.02.2008
Сообщений: 318
По умолчанию

А mark.mark_jur текстовое поле или числовое?
©Учиться, учиться и еще раз учиться!
quit вне форума Ответить с цитированием
Старый 02.09.2009, 17:52   #18
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,206
По умолчанию

Цитата:
А mark.mark_jur текстовое поле или числовое?
В данный момент текстовое...
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 03.09.2009, 08:55   #19
SuperVisor
Павел Сергеевич
Форумчанин
 
Регистрация: 05.11.2006
Сообщений: 665
По умолчанию

В общем, выкладывай базу еще раз, но с бОльшим количеством данных (около 10 учеников, пара классов, с два десятка оценок по паре предметов) - лично займусь хэлпом =)
Познавая других, мы познаем себя.
С'est la vie...
SuperVisor вне форума Ответить с цитированием
Старый 03.09.2009, 10:19   #20
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,206
По умолчанию

В папке таблицы с добавленными записями. Посмотрите)
Вложения
Тип файла: zip Таблицы БД.zip (2.7 Кб, 9 просмотров)
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
последовательное выполнение процедур в макросе iamaxl Microsoft Office Excel 4 07.07.2009 16:23
Чтение, чтение и еще раз чтение Alex Cones Общие вопросы Delphi 3 07.06.2009 15:28
C++. Последовательное обращение к файлам с расширением Парсифаль Помощь студентам 8 06.05.2009 21:54
Последовательное копирование непустых строк.. Judge52 Microsoft Office Excel 2 13.03.2009 08:23