Добро пожаловать в форум, Guest >> Войти | Регистрация | Поиск | Правила | | В избранное | Подписаться | ||
Все форумы / Microsoft SQL Server |
![]() ![]() |
sery80 Member Откуда: Сообщений: 24 |
есть T1 Id кредиту ученик 1 игорь 100 2 игорь 500 3 игорь 132 4 иван 420 5 иван 380 6 вася 110 7 вася 98 надо Id кредиту ученик 1 игорь 100/732 2 игорь 500/732 3 игорь 132/732 4 иван 420/800 5 иван 380/800 6 вася 110/208 7 вася 110/208 |
17 дек 17, 19:56 [21040999] Ответить | Цитировать Сообщить модератору |
Akina Member Откуда: Зеленоград, Москва, Россия Сообщений: 20960 |
Суммирующий подзапрос. |
17 дек 17, 20:25 [21041036] Ответить | Цитировать Сообщить модератору |
over,
Guest |
если версия позволяетsum(сумма)over(partition by ученик) |
17 дек 17, 20:30 [21041047] Ответить | Цитировать Сообщить модератору |
xenix
Guest |
sery80, Пойдет? USE master GO WITH STUDENTS(ID,NAME,CREDIT) AS ( SELECT 1,'IGOR',100 UNION ALL SELECT 2,'IGOR',500 UNION ALL SELECT 3,'IGOR',132 UNION ALL SELECT 4,'IVAN',420 UNION ALL SELECT 5,'IVAN',380 UNION ALL SELECT 6,'VASYA',110 UNION ALL SELECT 7, 'VASYA',98 ), GROUPEDSTUDENTS AS ( SELECT S.NAME,SUM(S.CREDIT)TOTALCREDIT FROM STUDENTS S GROUP BY S.NAME ) SELECT S.ID,S.NAME,S.CREDIT,CAST(S.CREDIT AS VARCHAR(3))+'/'+CAST(GR.TOTALCREDIT AS VARCHAR(5))TT FROM STUDENTS S JOIN GROUPEDSTUDENTS GR ON S.NAME=GR.NAME |
17 дек 17, 20:45 [21041061] Ответить | Цитировать Сообщить модератору |
sery80 Member Откуда: Сообщений: 24 |
Akina, подзапрос это в смысле вложенный? |
17 дек 17, 21:39 [21041132] Ответить | Цитировать Сообщить модератору |
sery80 Member Откуда: Сообщений: 24 |
Akina, а так что бы дробями выводилось возможно ли а вот это стока всего ведь надо не так много что даст такой сложный запрос? |
17 дек 17, 21:41 [21041136] Ответить | Цитировать Сообщить модератору |
aleksrov Member Откуда: Сообщений: 948 |
sery80, ленивый, ленивый студент. create table #T ( id int, col varchar(20), Num int ) insert into #T (id,col,Num) values (1,'Вася',100),(2,'Вася',250),(3,'Вася',120),(4,'Петя',400),(5,'Вася',260),(6,'Петя',280) select id,col,num, cast(100. * Num/ sum(num) over(partition by col) as numeric (5,2)) as Procent, from #T drop table #T |
18 дек 17, 06:24 [21041488] Ответить | Цитировать Сообщить модератору |
Ролг Хупин Member Откуда: Чебаркуль Сообщений: 3970 |
всегда было интересно, как поступают и учатся малограмотные..и , главное, зачем? "а так что бы дробями выводилось возможно ли а вот это стока всего ведь надо не так много что даст такой сложный запрос?" |
||
18 дек 17, 16:01 [21043095] Ответить | Цитировать Сообщить модератору |
TaPaK Member Откуда: Kiev Сообщений: 6801 |
может он боксёром раньше был :) |
||||
18 дек 17, 16:04 [21043104] Ответить | Цитировать Сообщить модератору |
Все форумы / Microsoft SQL Server | ![]() |