Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Как преобразовать столбец в строку с созданием новых полей???  [new]
Alex_12095
Member

Откуда:
Сообщений: 38
Добрый День!
Помогите пожалуйста,
Есть таблица которая содержит сведения о серверах, мне нужно выполнить запрос таким образом что бы он выводил все днс в одну строку но под новым полем.
Т.е. мой запрос выглядит так:
SELECT     dbo.Item.IField, dbo.Item.IValue
FROM         dbo.Item RIGHT OUTER JOIN
                      dbo.Report ON dbo.Item.ReportID = dbo.Report.ID
WHERE     (dbo.Report.RHost = 'URAN')
GROUP BY dbo.Item.IValue, dbo.Item.IField
HAVING      (dbo.Item.IField = 'DNS')

Его результат такой
IField _____IValue
DNS _____234514123432
DNS _____124134123444
DNS _____213412342343
DNS _____312423142341
Но дело в том что мне нужно все днс вывести в одну строку, не через запятую, а с созданием поля.
Желательно если бы это можно было сделать просто запросом sql т.к. я не особо владею БД.
Заранее всем спасибо!!!
17 май 13, 07:25    [14309182]     Ответить | Цитировать Сообщить модератору
 Re: Как преобразовать столбец в строку с созданием новых полей???  [new]
Ruuu
Member

Откуда: Иркутск
Сообщений: 4272
Alex_12095,

Оно?
if OBJECT_ID('tempdb..#tbl') is not null
	drop table #tbl

create table #tbl (good varchar(100),price money, PriceDate date) 

insert into #tbl values ('pepsi',50,'20130516'), ('coca-cola',52,'20130516'),('pepsi',50,'20130514'), ('coca-cola',52,'20130514')


declare @sql varchar(max)
declare @select_list varchar(max)

select @select_list=ISNULL(@select_list+',','')+'['+good+']' from #tbl group by good order by good


	SET @sql =
	'SELECT PriceDate, ' + @select_list + '
	 FROM (SELECT PriceDate, price, good 
		  FROM #tbl TS) TS
	 PIVOT (
			AVG([Price])
			FOR good IN (' + @select_list + ')
			) AS pvt
	ORDER BY pvt.PriceDate
	'

exec (@sql)
17 май 13, 08:32    [14309250]     Ответить | Цитировать Сообщить модератору
 Re: Как преобразовать столбец в строку с созданием новых полей???  [new]
Ruuu
Member

Откуда: Иркутск
Сообщений: 4272
Рекомендации по оформлению сообщений в форуме
4. Сообщайте пожалуйста полную версию вашего MS SQL Server.
6. Если Ваш вопроc связан с созданием какого-то запроса, то предоставление Вами следующих материалов может существенно ускорить нахождение решения:
- скрипты создания таблиц;
- скрипты заполнения этих таблиц тестовыми данными;
- описание желаемого результата на примере тестовых данных.
17 май 13, 08:32    [14309254]     Ответить | Цитировать Сообщить модератору
 Re: Как преобразовать столбец в строку с созданием новых полей???  [new]
Alex_12095
Member

Откуда:
Сообщений: 38
Ruuu,
Это слишком сложно для меня
я уже сделал по другому с созданием таблицы с PK
и сделал обычную выборку:)
24 май 13, 04:01    [14342026]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить