powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / проблема селект
7 сообщений из 7, страница 1 из 1
проблема селект
    #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
проблема селект
    #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
проблема селект
    #39586885
Minamoto
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Itex2017, PIVOT + ROW_NUMBER
...
Рейтинг: 0 / 0
проблема селект
    #39587079
Itex2017
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MinamotoItex2017, PIVOT + ROW_NUMBER
????
модел ест ?
буду попробовать
...
Рейтинг: 0 / 0
проблема селект
    #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
проблема селект
    #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
проблема селект
    #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
7 сообщений из 7, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / проблема селект
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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