nityanand NCR Ответов: 3

Как создать сводную таблицу в SQL sever


У меня есть таблица (Table_Marks), которая содержит значение, как описано ниже: -
CLASS | STD | NAME   | SUBJECT | PT1   | PB1    | PT2   | PB2    | 
1     | ST1 | NITYA  | ENG     | 12    | 15     | 30    | 9      |
1     | ST1 | NITYA  | HIN     | 2     | 22     | 25    | 6      |
1     | ST1 | NITYA  | MATH    | 3     | 10     | 32    | 8      |

1     | ST2 | SHIV   | ENG     | AB    | AB     | 10    | 2      |
1     | ST2 | SHIV   | HIN     | 2     | 22     | 20    | 1      |
1     | ST2 | SHIV   | MATH    | 3     | 10     | AB    | 5      |



Теперь я хочу использовать это как сводную таблицу, как описано ниже: -
CLASS|STD |NAME  |ENG     |HIN    |MATH   |T1 |ENG    |HIN    |MATH   |T2  |T1+T2|
	             |PT1|PB1 |PT1|PB1|PT1|PB1|   |PT2|PB2|PT2|PB2|PT2|PB2|		
1    |STD1|NITYA |12 |15  |2  |22 |3  |10 |64 |30 |9  |25 |6  |32 |8  |110 |174
1    |STD2|SHIV	 |AB |AB  |2  |22 |3  |10 |37 |10 |2  |20 |1  |AB |5  |38  |75


Пожалуйста, помогите кому-нибудь

Что я уже пробовал:

........................................................................................

OriginalGriff

И что же?
А что вы пробовали?
Что он сделал такого, чего вы не ожидали, или не сделали того, что вы сделали?
Какая помощь вам нужна?

nityanand NCR

Не могли бы вы помочь, пожалуйста?

OriginalGriff

А что вы пробовали?
Где ты застрял?
Какая помощь вам нужна?

nityanand NCR

Сэр я новичок
Я не получаю любой момент, как это сделать...
Пожалуйста помочь...

#realJSOP

Вы не можете повернуть эту таблицу, потому что некоторые значения не являются числовыми.

3 Ответов

Рейтинг:
1

OriginalGriff

Цитата:
Сэр я новичок
Я не получаю любой момент, как это сделать...
Пожалуйста помочь...

Мы не делаем домашнее задание: оно задано не просто так. Она существует для того, чтобы вы думали о том, что вам сказали, и пытались понять это. Он также существует для того, чтобы ваш наставник мог определить области, в которых вы слабы, и сосредоточить больше внимания на корректирующих действиях.

Попробуйте сами, возможно, вы обнаружите, что это не так сложно, как вы думаете!
Начните с этого: Использование PIVOT и UNPIVOT[^] и это: SQL Server: сводное предложение[^]
Это сложно, да - но то, что мы просто даем вам решение, не поможет вам в следующий раз. Почитайте об этом, изучите и попробуйте. Это не так уж плохо, как только вы поймете это!

Если вы столкнетесь с конкретной проблемой, то, пожалуйста, спросите об этом, и мы сделаем все возможное, чтобы помочь. Но мы не собираемся делать все это для вас!


Рейтинг:
1

Maciej Los

Цитата:
Теперь я хочу использовать это как сводную таблицу, как описано ниже: -

CLASS|STD |NAME  |ENG     |HIN    |MATH   |T1 |ENG    |HIN    |MATH   |T2  |T1+T2|
	             |PT1|PB1 |PT1|PB1|PT1|PB1|   |PT2|PB2|PT2|PB2|PT2|PB2|		
1    |STD1|NITYA |12 |15  |2  |22 |3  |10 |64 |30 |9  |25 |6  |32 |8  |110 |174
1    |STD2|SHIV	 |AB |AB  |2  |22 |3  |10 |37 |10 |2  |20 |1  |AB |5  |38  |75


Ты не можешь! MS SQL Server не предоставляет возможности вставлять более одной строки заголовка.

С другой стороны: нет простого способа сделать это. SUM('AB', 'AB', '2', '22', '3', '10') Вам нужно будет преобразовать текст в цифры.


Рейтинг:
1

Member 13658881

я думаю, что это полезно для вас..

select CLASS,STD ,NAME,SUBJECT,pt1,pt2,pb1,pb2,t1,t2,gtot
from 
(
select class,std,name,subject,pt1,pt2,pb1,pb2,(pt1+pb1)T1,(pt2+pb2)T2,(T1+T2)Gtot
)a
pivot 
(
sum(Gtot)
for subject in([Eng],[Hin],..)
)pvt


Maciej Los

Прости, но ты ошибаешься. Взгляните на входные данные.

Member 13658881

Я не говорю ответ, Просто скажите попробовать этот путь..

Maciej Los

И я не задаю вопросов. ;)

Member 13658881

о, скажи что - нибудь на мой вопрос, разве это не вопрос?