Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Помогите пожалуйста с запросом  [new]
сашаалександр
Member

Откуда:
Сообщений: 5
Ребята,помогите пожалуйста разобраться с одним запросом ОЧЕНЬ ОЧЕНЬ НУЖНА ВАША ПОМОЩЬ,

Хотелось бы на выходе иметь такую выборку


название класса время начала урока дата



С класс 9,00 10,05,2009
С класс 9,00 12,05,2009
С Класс 10,30 10,05,2009
С класс 10,30 12,05,2009

D KЛАСС 9,00 10,05,2009
D класс 9,00 12,05,2009
D kласс 10,00 10,05,2009
D класс 10,00 12,05,2009

А класс 14,00 10,05,2009
А кЛАСС 14,00 12,05,2009
А КЛАСС 15,00 10,05,2009
А КЛАСС 15,00 12,05,2009

B KЛАСС 20,00 10,05,2009
B класс 20,00 12,05,2009
B kласс 21,00 10,05,2009
В класс 21,00 12,05,2009




Пролема в слудующем если я делаю такой запрос
SELECT название класса, время начало урока, дата FROM несколько связанных таблиц
ORDER BY название класса,время начало урока,дата
то оно выбирает так

А класс 14,00 10,05,2009
А кЛАСС 14,00 12,05,2009
А КЛАСС 15,00 10,05,2009
А КЛАСС 15,00 12,05,2009

B KЛАСС 20,00 10,05,2009
B класс 20,00 12,05,2009
B kласс 21,00 10,05,2009
В класс 21,00 12,05,2009

С класс 9,00 10,05,2009
С класс 9,00 12,05,2009
С Класс 10,30 10,05,2009
С класс 10,30 12,05,2009

D KЛАСС 9,00 10,05,2009
D класс 9,00 12,05,2009
D kласс 10,00 10,05,2009
D класс 10,00 12,05,2009

Если поставлю сортировать сперва по времени потом по имени то вообще не то будет (так как сперва время для разных групп)

То есть мне нужно чтобы данные были упорядочены 1)по названию класса и 2)времени(9,00 9,00 затем 10,00 10,00) для каждого класса и 3) по абсолютному времени то
есть сперва классы у которых утренне время потом обедненное и вечерние.
Первые два условия выполнить своим запросом могу а вот как третье сделать?
Подскажите,пожалуйста.
8 дек 09, 21:08    [8037734]     Ответить | Цитировать Сообщить модератору
 Re: Помогите пожалуйста с запросом  [new]
ё
Guest
сашаалександр
...
2)времени(9,00 9,00 затем 10,00 10,00) для каждого класса и
3) по абсолютному времени то
...


...а чем время - отличается от абсолютного времени?
и воопще - что такое утренне, обедненное и вечерние время?
сколько это в килограммах??
8 дек 09, 21:26    [8037776]     Ответить | Цитировать Сообщить модератору
 Re: Помогите пожалуйста с запросом  [new]
сашаалександр
Member

Откуда:
Сообщений: 5
Да бог его знает сколько в килограммах Я хотел бы следующее

Хотелось бы на выходе иметь такую выборку


название класса время начала урока дата



С класс 9,00 10,05,2009
С класс 9,00 12,05,2009
С Класс 10,30 10,05,2009
С класс 10,30 12,05,2009

D KЛАСС 9,00 10,05,2009
D класс 9,00 12,05,2009
D kласс 10,00 10,05,2009
D класс 10,00 12,05,2009

А класс 14,00 10,05,2009
А кЛАСС 14,00 12,05,2009
А КЛАСС 15,00 10,05,2009
А КЛАСС 15,00 12,05,2009

B KЛАСС 20,00 10,05,2009
B класс 20,00 12,05,2009
B kласс 21,00 10,05,2009
В класс 21,00 12,05,2009

То есть я писал что пролема в том что если ставить сортировку по имени класса то будут отсортированы имена класса а потом уже внутри этой сортировки отсортировано время для каждого класса А мне нужно в дополнение к этому чтобы и вся это выборка было отсортирована по времени То есть видите сперва классы С и D у них самое раннее время затем А и В с более поздним временем. Для каждого класса время занятий отсортирована но и для всех классов оно тоже отсортировано То есть если мы сортируем сперва по имени потом по времени это не решает проблему и если наоборот то это тоже не решает ее. В первом случае будут все остортировано по имени и внутри каждого имени класса по времени НО сами оно будет так
А класс 14,00 10,05,2009
А кЛАСС 14,00 12,05,2009
А КЛАСС 15,00 10,05,2009
А КЛАСС 15,00 12,05,2009

B KЛАСС 20,00 10,05,2009
B класс 20,00 12,05,2009
B kласс 21,00 10,05,2009
В класс 21,00 12,05,2009
С класс 9,00 10,05,2009
С класс 9,00 12,05,2009
С Класс 10,30 10,05,2009
С класс 10,30 12,05,2009

D KЛАСС 9,00 10,05,2009
D класс 9,00 12,05,2009
D kласс 10,00 10,05,2009
D класс 10,00 12,05,2009


то есть видите у класса С и D время начала занятий 9 и 10 часов
а у А и В 14,15,20,21 часа но А и В буду идти выборке раньше.
А мне нужно чтобы как в первом случае? Вот что значит абсолютное для всех время
8 дек 09, 21:51    [8037862]     Ответить | Цитировать Сообщить модератору
 Re: Помогите пожалуйста с запросом  [new]
ё
Guest
...угу, панятна
надо добавить в запрос, который формирует эту выборку,
выбор ещё одного значения - время начала самого первого урока в этом дне
будет что то типа
SELECT a.НачалоУрока, a.Класс, a.Дата,
(SELECT MIN(b.НачалоУрока) FROM [Расписание] b WHERE a.Класс = b.Класс AND a.Дата = b.Дата) As orderby
FROM [Расписание]
ORDER BY orderby, a.Класс, a.НачалоУрока, a.Дата
если это новое значение будет "мешать" отображению на клиенте,
то можно обернуть ещё одним СЕЛЕКТОМ, в котором orderby в список выборки - не выводить
8 дек 09, 22:26    [8037959]     Ответить | Цитировать Сообщить модератору
 Re: Помогите пожалуйста с запросом  [new]
сашаалександр
Member

Откуда:
Сообщений: 5
Спасибо большое за такой быстрый ответ. Попробую и отпишусь.
8 дек 09, 22:50    [8038003]     Ответить | Цитировать Сообщить модератору
 Re: Помогите пожалуйста с запросом  [new]
сашаалександр
Member

Откуда:
Сообщений: 5
Спасибо ё Guest ты меня очень очень выручил. Все работает как я и хотел и как ты показал.
9 дек 09, 12:05    [8039606]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить