powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Помогите решить задачку
8 сообщений из 8, страница 1 из 1
Помогите решить задачку
    #32043293
Alexander79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В таблице имеется поле Count, допустимыми значениями которого являются: 0, 1, 2, 3.
Как создать запрос, состоящий из одного запроса SELECT, который выдавал бы сумму для данного поля, в которую для значения Count = 0 включалось бы 1, для Count = 1 – 5, для Count = 2 – 9, для Count = 3 – 18.

Имеется таблица СТУДЕНТЫ, содержащая поля ФИО, СреднийБаллВШколе, СреднийБаллВУниверситете, СрокОбученияВУниверситете.
Как создать запрос, состоящий из одного запроса SELECT, который выдавал бы ФИО и, для студентов со сроком обучения > 1 года – СреднийБаллВУниверситете, а для студентов со сроком обучения < 1 года – СреднийБаллВШколе.
...
Рейтинг: 0 / 0
Помогите решить задачку
    #32043327
Glory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
См. в BOL функцию CASE

Приблизительно так
Код: plaintext
1.
2.
3.
4.
select sum(case [count] when  0  then  1  
    when  1  then  5  
    when  2  then  9 
    when  3  thrn  18 ) as xxx from mytable


Со вторым запросом попробуйте справиться сами
...
Рейтинг: 0 / 0
Помогите решить задачку
    #32043328
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
SELECT SUM(CASE Count
		WHEN  0  THEN  1 
		WHEN  1  THEN  5 
		WHEN  2  THEN  9 
		WHEN  3  THEN  18 
	END)

Код: plaintext
1.
2.
3.
4.
SELECT ФИО, CASE 
		WHEN СрокОбученияВУниверситете>= 1  THEN СреднийБаллВУниверситете
		ELSE СреднийБаллВШколе
	END
...
Рейтинг: 0 / 0
Помогите решить задачку
    #32043330
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну вот, пока писал Glory уже и ответил. Видимо, надо быстрее писать :)
...
Рейтинг: 0 / 0
Помогите решить задачку
    #32043331
Фотография MichaelGK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Признайтесь Александр, Вам эту задачку подбросили на каком-нибудь тестировании, или у Вас плохо спроектированная база.
...
Рейтинг: 0 / 0
Помогите решить задачку
    #32043332
Зайцев Фёдор
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не признавайтесь !!!
MichaelGK может не знать о существовании других вариантов ответов и его переклинит, если Вы ответите что-нибудь типа "ни то, ни другое"
...
Рейтинг: 0 / 0
Помогите решить задачку
    #32043339
Alexander79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо Glory и ВладимирМ.
А MichaelGK действительно прав.
Подскажите, есть ли какой-нибудь чат на тему программирования вообще, и SQL, Delphi в частности.
...
Рейтинг: 0 / 0
Помогите решить задачку
    #32043347
dmitry
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Могу еще предложить такой вариант (что-то вдруг захотелось одной формулой и без Case :-) ):
Код: plaintext
select sum( 4 *[count]+ 1 + 5 *(sign([count]- 3 )+ 1 )) from mytable 
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Помогите решить задачку
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]