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

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

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

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

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

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

Посмотрел... Крутил и так, и сяк... Не хочет он мне выдавать результат.. А точнее - не хочет во вложенные запросы передавать ID ученика... по всей видимости придется создавать связи таблиц посредством Delphi-компонентов или переходить на иную СУБД...
Познавая других, мы познаем себя.
С'est la vie...
SuperVisor вне форума Ответить с цитированием
Старый 03.09.2009, 13:52   #22
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,206
По умолчанию

Цитата:
по всей видимости придется создавать связи таблиц посредством Delphi-компонентов
Что Вы имеете ввиду?
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 03.09.2009, 13:59   #23
SuperVisor
Павел Сергеевич
Форумчанин
 
Регистрация: 05.11.2006
Сообщений: 665
По умолчанию

Можешь посмотреть примеры реализации в дэмках Delphi.
В BDS 2005 это: %BDS%\3.0\Demos\DelphiWin32\VCLWin3 2\Db
Познавая других, мы познаем себя.
С'est la vie...
SuperVisor вне форума Ответить с цитированием
Старый 03.09.2009, 14:14   #24
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

artemavd, 1) таблица Предметы всё так же по прежнему пустая!
2) этот старый уродливый Парадокс не понимает вложенные запросы!

3) поэтому результат выполнения запроса:
Код:
SELECT MR.With_SPISOK, MR.OnPredmet_2, 1 as Mark_5, 
     0 as Mark_4, 0 as Mark_3, 0 as Mark_2, 0 as Mark_1  
   FROM MARK MR
   WHERE MR.Mark_jur="5"
UNION ALL
SELECT MR.With_SPISOK, MR.OnPredmet_2, 0 as Mark_5, 
     1 as Mark_4, 0 as Mark_3, 0 as Mark_2, 0 as Mark_1  
   FROM MARK MR
   WHERE MR.Mark_jur="4"
UNION ALL
SELECT MR.With_SPISOK, MR.OnPredmet_2, 0 as Mark_5, 
     0 as Mark_4, 1 as Mark_3, 0 as Mark_2, 0 as Mark_1  
   FROM MARK MR
   WHERE MR.Mark_jur="3"
UNION ALL
SELECT MR.With_SPISOK, MR.OnPredmet_2, 0 as Mark_5, 
     0 as Mark_4, 0 as Mark_3, 1 as Mark_2, 0 as Mark_1  
   FROM MARK MR
   WHERE MR.Mark_jur="2"
UNION ALL
SELECT MR.With_SPISOK, MR.OnPredmet_2, 0 as Mark_5, 
     0 as Mark_4, 0 as Mark_3, 0 as Mark_2, 1 as Mark_1  
   FROM MARK MR
   WHERE MR.Mark_jur="1"
ORDER BY  MR.With_SPISOK, MR.OnPredmet_2
прийдётся на клиенте ещё обрабатывать! ;((
Serge_Bliznykov вне форума Ответить с цитированием
Старый 03.09.2009, 14:15   #25
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,206
По умолчанию

Какие именно примеры? Врядли они помогут. Может еще есть какие-то идеи как можно посчитать?
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 03.09.2009, 14:17   #26
SuperVisor
Павел Сергеевич
Форумчанин
 
Регистрация: 05.11.2006
Сообщений: 665
Восклицание

Цитата:
Сообщение от artemavd Посмотреть сообщение
Какие именно примеры? Врядли они помогут.
Примеры взаимосвязей таблиц.. Один к одному, один к многим... Они работают...
Познавая других, мы познаем себя.
С'est la vie...
SuperVisor вне форума Ответить с цитированием
Старый 03.09.2009, 14:27   #27
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,206
По умолчанию

Эх, черт...
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 03.09.2009, 15:56   #28
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

вот тут - Запрос к PARADOX. Группировка по году и месяцу нашёл решение через создание локальных вьюшек.

создаёте рядом с табличками файлик с каким-либо именем.SQL (например MarkView.sql)
туда пишете текст запроса:
Код:
SELECT MR.With_SPISOK, MR.OnPredmet_2, 1 as Mark_5, 
     0 as Mark_4, 0 as Mark_3, 0 as Mark_2, 0 as Mark_1  
   FROM MARK MR
   WHERE MR.Mark_jur="5"
UNION ALL
SELECT MR.With_SPISOK, MR.OnPredmet_2, 0 as Mark_5, 
     1 as Mark_4, 0 as Mark_3, 0 as Mark_2, 0 as Mark_1  
   FROM MARK MR
   WHERE MR.Mark_jur="4"
UNION ALL
SELECT MR.With_SPISOK, MR.OnPredmet_2, 0 as Mark_5, 
     0 as Mark_4, 1 as Mark_3, 0 as Mark_2, 0 as Mark_1  
   FROM MARK MR
   WHERE MR.Mark_jur="3"
UNION ALL
SELECT MR.With_SPISOK, MR.OnPredmet_2, 0 as Mark_5, 
     0 as Mark_4, 0 as Mark_3, 1 as Mark_2, 0 as Mark_1  
   FROM MARK MR
   WHERE MR.Mark_jur="2"
UNION ALL
SELECT MR.With_SPISOK, MR.OnPredmet_2, 0 as Mark_5, 
     0 as Mark_4, 0 as Mark_3, 0 as Mark_2, 1 as Mark_1  
   FROM MARK MR
   WHERE MR.Mark_jur="1"
ORDER BY  MR.With_SPISOK, MR.OnPredmet_2
потом можно использовать результат этого запроса в своих подзапросах,
например так - сумма оценок по ученику, по каждому предмету:
Код:
SELECT 
With_SPISOK, OnPredmet_2, SUM(Mark_5) as S_MARK_5, 
     Sum(Mark_4) as S_MARK_4, SUM(Mark_3) as S_MARK_3, 
     Sum(Mark_2) as S_MARK_2, SUM(Mark_1) as S_MARK_1  
FROM MarkView.sql
GROUP BY With_SPISOK, OnPredmet_2
Serge_Bliznykov вне форума Ответить с цитированием
Старый 03.09.2009, 18:35   #29
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,206
По умолчанию

Я создал такой файл, назвал его markview.sql, но у меня не получается сохранить его. Пишет ошибку: "Invalid use of keyword".
Вот что я записал в него:
Код:
SELECT MR.With_SPISOK, MR.OnPredmet_2, 1 as Mark_5, 
     0 as Mark_4, 0 as Mark_3, 0 as Mark_2, 0 as Mark_1  
   FROM MARK MR
   WHERE MR.Mark_jur="5"
UNION ALL
SELECT MR.With_SPISOK, MR.OnPredmet_2, 0 as Mark_5, 
     1 as Mark_4, 0 as Mark_3, 0 as Mark_2, 0 as Mark_1  
   FROM MARK MR
   WHERE MR.Mark_jur="4"
UNION ALL
SELECT MR.With_SPISOK, MR.OnPredmet_2, 0 as Mark_5, 
     0 as Mark_4, 1 as Mark_3, 0 as Mark_2, 0 as Mark_1  
   FROM MARK MR
   WHERE MR.Mark_jur="3"
UNION ALL
SELECT MR.With_SPISOK, MR.OnPredmet_2, 0 as Mark_5, 
     0 as Mark_4, 0 as Mark_3, 1 as Mark_2, 0 as Mark_1  
   FROM MARK MR
   WHERE MR.Mark_jur="2"
UNION ALL
SELECT MR.With_SPISOK, MR.OnPredmet_2, 0 as Mark_5, 
     0 as Mark_4, 0 as Mark_3, 0 as Mark_2, 1 as Mark_1  
   FROM MARK MR
   WHERE MR.Mark_jur="1"
ORDER BY  MR.With_SPISOK, MR.OnPredmet_2
Мне не понятно, что такое "MR"?? Что это такое?
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 03.09.2009, 19:03   #30
soleil@mmc
SQL-коддинг
Участник клуба
 
Регистрация: 16.01.2009
Сообщений: 1,192
По умолчанию

MR - это псевдоним таблицы для краткого обращения к ней и более читабельного скл-кода

кто тебе так ругается? нотпад что ли?
soleil@mmc вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 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