Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / проблема селект / 7 сообщений из 7, страница 1 из 1
19.01.2018, 01:52
    #39586776
Itex2017
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проблема селект
привет ребята

данные таблицы так

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
declare @t1 table(id int not null identity(1,1),
question1 nvarchar(100),
question2 nvarchar(100)
)

declare @t2 table(id int not null identity(1,1),
question_id int ,
answear nvarchar(100)
)

insert into @t1(question1,question2)
values('A','B')

insert into @t2(question_id,answear)
values(1,'w'),(1,'y'),(1,'z')
,(2,'a'),(2,'b'),(2,'c')

select * from  @t1
select * from @t2

id	question
1	A
2	B


id	question_id	answear
1	1	w
2	1	y
3	1	z
4	2	a
5	2	b
6	2	c




как я могу получит такой резултать
спасибо

Код: sql
1.
2.
3.
4.
 id_ques    ques    ans1   ans2    ans3
1               A         w       y          z

2               B         a        b          c
...
Рейтинг: 0 / 0
19.01.2018, 03:02
    #39586779
Massa52
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проблема селект
Itex2017,

Чет нестыковка, может так
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
declare @t1 table(id int not null identity(1,1),
question nvarchar(100)
)

declare @t2 table(id int not null identity(1,1),
question_id int ,
answear nvarchar(100)
)

insert into @t1(question)
values('A'),('B')

insert into @t2(question_id,answear)
values(1,'w'),(1,'y'),(1,'z')
,(2,'a'),(2,'b'),(2,'c')

select * from  @t1
select * from @t2
...
Рейтинг: 0 / 0
19.01.2018, 10:21
    #39586885
Minamoto
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проблема селект
Itex2017, PIVOT + ROW_NUMBER
...
Рейтинг: 0 / 0
19.01.2018, 13:56
    #39587079
Itex2017
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проблема селект
MinamotoItex2017, PIVOT + ROW_NUMBER
????
модел ест ?
буду попробовать
...
Рейтинг: 0 / 0
19.01.2018, 14:29
    #39587114
Шыфл
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проблема селект
Itex2017,

что-то не выходіт каменный цветок
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
select question_id,question, [1],[2],[3]
from
(select question,b.*, ROW_NUMBER() over(partition by question order by b.id) rn
from @t1 a
inner join @t2 b on a.id=b.question_id) k
pivot ( min(answear)
for rn in([1],[2],[3]) 
) as pvt


Код: plaintext
1.
2.
3.
4.
5.
6.
id	q	1	2	3
1	A	w	NULL	NULL
1	A	NULL	y	NULL
1	A	NULL	NULL	z
2	B	a	NULL	NULL
2	B	NULL	b	NULL
2	B	NULL	NULL	c
...
Рейтинг: 0 / 0
19.01.2018, 14:32
    #39587122
Шыфл
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проблема селект
Шыфл, вот так лучше

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
select question_id,question, max([1]),max([2]),max([3])
from
(
select question_id,question, [1],[2],[3]
from
(select question,b.*, ROW_NUMBER() over(partition by question order by b.id) rn
from @t1 a
inner join @t2 b on a.id=b.question_id) k
pivot ( min(answear)
for rn in([1],[2],[3]) 
) as pvt
) d group by question_id,question


Код: plaintext
1.
2.
3.
id	q	1	2	3
1	A	w	y	z
2	B	a	b	c
...
Рейтинг: 0 / 0
19.01.2018, 16:51
    #39587240
prog882_guest
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проблема селект
Itex2017,

Код: sql
1.
2.
3.
4.
5.
6.
select *
from (
select question_id, answear, row_number() over(partition by question_id order by id) as  rn
from @t2 ) as t2 
pivot ( max(answear) for rn in ([1],[2],[3])) as pvt
join  @t1 as t1 on pvt.question_id = t1.id
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / проблема селект / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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