Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Помогите сделать запрос... [D7, XP]


Страницы:   1 2

serko ©   (2007-01-10 21:39:00) 

Ребят привет!
У меня есть таблица с данными типа:
№ ФИО ОЦЕНКА
1 Иванов 2
2 Петров 3
3 Петров 5
4 Петров 2
5 Сидовов 5

Мне нужно сгруппировать данные (или как там правильно) что бы получилась таблица ввиде:
1 Иванов 0/1
2 Петров 2/3
3 Сидоров 1/1

т.е. отображается сколько попыток СДАЧИ ЭКЗАМЕНА было и сколько из них он сдал на положительную оценку (3<=).
Помогите сделать это рациональным способом...


Johnmen   (2007-01-12 00:27:00) [21]


> serko ©   (12.01.07 00:07) [15]
> А че в запросе суммирования по условия
> нельзя сделать? ну типа OCENKA>=3 then Sum:=sum+1;


Смотря какая версия FB. Проверяй:
SUM(CASE WHEN OCENKA > 2 THEN 1 ELSE 0 END)


serko   (2007-01-12 00:07:00) [22]

ну я уже несколько контрольных примеров сделал... ТРОЙКА никак не учитывается...

А че в запросе суммирования по условия нельзя сделать? ну типа OCENKA>=3 then Sum:=sum+1;


try   (2007-01-11 23:42:00) [23]


> (3/2-0.1)/2=0,7 =1 но вот данный случай почему то не проходит...


Не может быть!


serko   (2007-01-11 23:27:00) [24]


> 1. Из соображения иметь 0, если 2, и 1, если 3, 4 или 5

Незнаю почему но "3" не учитываются...

я так понимаю получается:
(2/2-0.1)/2=0,45 =0
(3/2-0.1)/2=0,7 =1 но вот данный случай почему то не проходит...
(4/2-0.1)/2=0,95 =1
(5/2-0.1)/2=1,2 =1


brother   (2007-01-11 04:56:00) [25]

http://ibase.ru


serko   (2007-01-10 23:59:00) [26]

СПАСИБО И НА ТОМ!


try   (2007-01-10 23:51:00) [27]


> T1 это еще одна таблица с другой структурой?


Это псевдоним (алиас) имени таблицы.


> Где можна почитать подробно о запросах?


В документации. Типа SQL Reference Help в IB.


try   (2007-01-10 23:49:00) [28]

Да чего там мудрить :)))
SELECT
FIO,
SUM(CAST((OCENKA/2-0.1)/2 AS INTEGER)) || ' из ' || COUNT(*)
FROM EKZAM
GROUP BY FIO


serko   (2007-01-10 23:49:00) [29]

T1 это еще одна таблица с другой структурой?

Где можна почитать подробно о запросах?


try   (2007-01-10 23:43:00) [30]

SELECT
 T1.FIO,
 (SELECT SUM(CAST((T2.OCENKA/2-0.1)/2 AS INTEGER))
  FROM EKZAM T2
  WHERE T2.FIO=T1.FIO) || ' из ' || COUNT(*)
FROM EKZAM T1
GROUP BY FIO


serko   (2007-01-10 23:34:00) [31]

FIREBIRD


try   (2007-01-10 23:26:00) [32]

Ну да, я FROM упустил :)))


> А можна сделать чтобы Эти данные заносились в один столбик
> "РЕЙТИНГ" (а не в два "SUM" и "COUNT") ввиде "3 из 10"?
> Как это сделать?


Какая СУБД?


serko   (2007-01-10 23:22:00) [33]

Ну так я собственно ниче и не поменял

SELECT FIO, SUM(CAST((OCENKA/2-0.1)/2 AS INTEGER)), COUNT(*)
GROUP BY FIO

Гы... а нужно было всего навсего FROM EKZAM добавить...
И все заработало... СПАСИБО!

А можна сделать чтобы Эти данные заносились в один столбик "РЕЙТИНГ" (а не в два "SUM" и "COUNT") ввиде "3 из 10"? Как это сделать?


try   (2007-01-10 23:06:00) [34]

1. Из соображения иметь 0, если 2, и 1, если 3, 4 или 5
2. Приводи текст реального запроса.


serko   (2007-01-10 22:37:00) [35]

из каких это соображений выражение - CAST((ОЦЕНКА/2-0.1)/2

При активации IBDataSet выскакивает ошибка ".... Token unknown line 2 char 1 GROUP"

Че это такое?


try   (2007-01-10 22:12:00) [36]

SELECT ФИО, SUM(CAST((ОЦЕНКА/2-0.1)/2 AS INTEGER)), COUNT(*)
GROUP BY ФИО


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо