![]() |
Модераторы: skyboy |
![]() ![]() ![]() |
|
ilta |
|
|||
Новичок Профиль Группа: Участник Сообщений: 26 Регистрация: 15.10.2012 Репутация: нет Всего: нет |
Здравствуйте!
Есть база на MS SQL Server. Есть запрос вида select * from table where conditions, выводит он информацию следующего вида: ФИО, ДАТА ПОСЕЩЕНИЯ, КОЛИЧЕСТВО, ПУНКТ НАЗНАЧЕНИЯ 'Иванов Иван Иванович', '10.10.2013', 345, 'Москва' 'Иванов Иван Иванович', '01.11.2013', 123, 'Питер' 'Петров Петр Петрович', '31.10.2013', 234, 'Воркута' 'Петров Петр Петрович', '15.10.2013', 123, 'Вологда' 'Семенов Семен Семенович', '25.10.2013', 333, 'Ставрополь'. Вопрос следующий - возможно ли в принципе в запросе выбрать записи так, чтобы кроме общих условий для выборки этих строк были еще условия для каждого человека. Не знаю, как понятнее объяснить, покажу на примерах. Пример 1: Для каждого человека выбрать запись с большей датой, т.е. чтобы запрос выдавал: 'Иванов Иван Иванович', '01.11.2013', 123, 'Питер' 'Петров Петр Петрович', '31.10.2013', 234, 'Воркута' 'Семенов Семен Семенович', '25.10.2013', 333, 'Ставрополь' Пример 2: Для каждого человека выбрать запись с каким-то определенным числом, т.е. чтобы запрос выдавал: 'Иванов Иван Иванович', '01.11.2013', 123, 'Питер' 'Петров Петр Петрович', '15.10.2013', 123, 'Вологда' 'Семенов Семен Семенович', '25.10.2013', 333, 'Ставрополь' Пример 3: Есть список приоритетных городов(Москва, Воркута), для каждого человека выбрать запись с приоритетным городом: 'Иванов Иван Иванович', '10.10.2013', 345, 'Москва' 'Петров Петр Петрович', '31.10.2013', 234, 'Воркута' 'Семенов Семен Семенович', '25.10.2013', 333, 'Ставрополь' Возможно ли это и, если возможно, то какая конструкция для этого используется? Если можно, пример, но и без примера буду благодарна, хоть бы знать в какую сторону смотреть. Заранее всем спасибо за внимание! ![]() |
|||
|
||||
Akina |
|
|||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 45 Всего: 454 |
Всё это возможно.
GROUP BY + MAX() WHERE А это уже оконные функции, не факт, что твоя версия сервера их поддерживает. Возможно, придётся обходиться бабкиными методами. -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
ilta |
|
||||
Новичок Профиль Группа: Участник Сообщений: 26 Регистрация: 15.10.2012 Репутация: нет Всего: нет |
Akina, спасибо за ответ!
А одновременно? Например, если города разных приоритетов, то выбираем по городу, если нет приоритетного города, то выбираем по дате?
Можно подробнее про оконные функции и про бабкины методы? Сервер MS SQL Server 2008R2 |
||||
|
|||||
Akina |
|
|||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 45 Всего: 454 |
ну тогда никаких проблем... http://technet.microsoft.com/ru-ru/library...v=sql.105).aspx Добавлено через 1 минуту и 21 секунду
Это называется "выбираем по город+дата". -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
ilta |
|
|||
Новичок Профиль Группа: Участник Сообщений: 26 Регистрация: 15.10.2012 Репутация: нет Всего: нет |
Akina, спасибо большое! Сортировка по дате у меня получилась, а по городу не соображу как((( Есть ли возможность указать два приоритетных города?
|
|||
|
||||
ilta |
|
|||
Новичок Профиль Группа: Участник Сообщений: 26 Регистрация: 15.10.2012 Репутация: нет Всего: нет |
||||
|
||||
Akina |
|
|||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 45 Всего: 454 |
![]() А почему не просто сортировка по двум полям?
-------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
ilta |
|
|||
Новичок Профиль Группа: Участник Сообщений: 26 Регистрация: 15.10.2012 Репутация: нет Всего: нет |
Неправильно выразилась. С помощью case определила towns.priority, отсортировала, конечно, через order by.
|
|||
|
||||
![]() ![]() ![]() |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Составление SQL-запросов | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |