powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / sql (две записи одной таблицы вывести как значения столбцов)
6 сообщений из 6, страница 1 из 1
sql (две записи одной таблицы вывести как значения столбцов)
    #40076290
yMHukyM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день!
Имеется связанные таблицы.
Table_Pribor
id_Pribor
pr_name
pr_adress

Table_PriborInfo
id_PriborInfo
kod_idPribor
ParamCode
ParamValue

Таблицы связаны (один-ко-многим)

В первой таблице есть прибор и его адрес, во второй таблице хранится одна запись это его тип и значение, вторая его номер и значение.

Нужно все вывести в одну строку
Name, Adress, Тип (Значение), Номер (Значение)

Сейчас у меня все записи идут в две строки
Name, Adress, Тип, Значение
Name, Adress, Номер, Значение


Делаю запрос вот такой запрос
Код: sql
1.
2.
3.
SELECT        Pribor.Name, Pribor.Adress, PriborInfo.ParamCode, PriborInfo.PriborValue
FROM            Pribor INNER JOIN
                         PriborInfo ON Pribor.id_Pribor = PriborInfo.kod_idPribor



Подскажите как исправить?
...
Рейтинг: 0 / 0
sql (две записи одной таблицы вывести как значения столбцов)
    #40076292
Фотография court
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
yMHukyM,

Код: sql
1.
2.
3.
4.
5.
FROM            Pribor 
left JOIN
                         PriborInfo ON Pribor.id_Pribor = PriborInfo.kod_idPribor and ParamCode='Тип'
left JOIN
                         PriborInfo ON Pribor.id_Pribor = PriborInfo.kod_idPribor and ParamCode='Номер'


или PIVOT
...
Рейтинг: 0 / 0
sql (две записи одной таблицы вывести как значения столбцов)
    #40076411
ol_chig
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
yMHukyM,

Можно через STUFF
...
Рейтинг: 0 / 0
sql (две записи одной таблицы вывести как значения столбцов)
    #40076422
ol_chig
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ol_chig
yMHukyM,

Можно через STUFF


дополню примером
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
-- через stuff
-- пример 3х строк
declare @string1 varchar(100) = 'Name1,Name2',
		@string2 varchar(100) = 'name1:Тип1,name2:Тип2',
		@string3 varchar(100) = 'name1:Значение1,name2:Значение2'

select value
from string_split(@string2, ',')

-- объединение
select 
a.value,
substring(stuff((select concat( '', value) from string_split(@string2, ',') b where b.value like a.value + '%' for xml path('')),1,0, ''), 7, 20),
substring(stuff((select concat( '', value) from string_split(@string3, ',') c where c.value like a.value + '%' for xml path('')),1,0, ''), 7, 20)
from string_split(@string1, ',') a
...
Рейтинг: 0 / 0
sql (две записи одной таблицы вывести как значения столбцов)
    #40076431
aleks222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ol_chig
ol_chig
yMHukyM,

Можно через STUFF


дополню примером
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
-- через stuff
-- пример 3х строк
declare @string1 varchar(100) = 'Name1,Name2',
		@string2 varchar(100) = 'name1:Тип1,name2:Тип2',
		@string3 varchar(100) = 'name1:Значение1,name2:Значение2'

select value
from string_split(@string2, ',')

-- объединение
select 
a.value,
substring(stuff((select concat( '', value) from string_split(@string2, ',') b where b.value like a.value + '%' for xml path('')),1,0, ''), 7, 20),
substring(stuff((select concat( '', value) from string_split(@string3, ',') c where c.value like a.value + '%' for xml path('')),1,0, ''), 7, 20)
from string_split(@string1, ',') a



- Батька может. Но бык лучше.

ЗЫ. Забивание гвоздей компутером - это высокое искусство.
...
Рейтинг: 0 / 0
sql (две записи одной таблицы вывести как значения столбцов)
    #40076433
ol_chig
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
aleks222,

я ждал)
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / sql (две записи одной таблицы вывести как значения столбцов)
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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