Добро пожаловать в форум, Guest >> Войти | Регистрация | Поиск | Правила | | В избранное | Подписаться | ||
Все форумы / Microsoft SQL Server |
![]() ![]() |
intruders Member Откуда: Сообщений: 140 |
День добрый, заранее извиняюсь за такой вопрос, но нужно помощь. Есть таблица Id, num, text 1 1 Техт1 2 1 Техт1 3 1 Техт1 4 2 Техт2 5 2 Техт2 6 2 Техт2 нужен результат на выходе 1 Техт1 Техт1 Техт1 2 Техт2 Техт2 Техт2 Заранее спасибо |
15 июн 15, 17:22 [17772896] Ответить | Цитировать Сообщить модератору |
Akina Member Откуда: Зеленоград, Москва, Россия Сообщений: 20970 |
Непоказательный пример. Неясно, какой из трёх "Text1" в какое поле попал и почему. |
15 июн 15, 17:25 [17772911] Ответить | Цитировать Сообщить модератору |
intruders Member Откуда: Сообщений: 140 |
15 СекцияДокумент=Объявление на взнос наличными 1 16 Номер=1 1 17 Дата=09.06.2015 1 18 Сумма= 1 19 ПлательщикСчет= 1 20 ПлательщикИНН= 1 21 Плательщик= 1 22 ПлательщикБИК= 1 23 ПлательщикКорсчет= 1 24 ПлательщикБанк1= 1 25 ПлательщикРасчСчет= 1 26 ПлательщикКПП= 1 27 ПолучательСчет= 1 28 ДатаПоступило=09.06.2015 1 29 Получатель= 1 30 ПолучательИНН= 1 31 ПолучательРасчСчет= 1 32 ПолучательБанк1= 1 33 ПолучательБИК= 1 34 ПолучательКорсчет= 1 35 ПолучательКПП= 1 36 ВидПлатежа= 1 37 ВидОплаты=04 1 38 СрокПлатежа=09.06.2015 1 39 Очередность=5 1 40 Код= 1 41 Назначение 1 42 КонецДокумента 1 |
15 июн 15, 17:28 [17772922] Ответить | Цитировать Сообщить модератору |
Akina Member Откуда: Зеленоград, Москва, Россия Сообщений: 20970 |
А по-людски оформить не судьба? в теге CSV, да с точным указанием, какой на показанных данных нужен результат. |
15 июн 15, 17:31 [17772937] Ответить | Цитировать Сообщить модератору |
intruders Member Откуда: Сообщений: 140 |
15 16 17 ... СекцияДокумент Номер дата .... |
15 июн 15, 17:33 [17772943] Ответить | Цитировать Сообщить модератору |
Владислав Колосов Member Откуда: Сообщений: 8334 |
intruders, а помощь какая нужна? |
15 июн 15, 17:37 [17772955] Ответить | Цитировать Сообщить модератору |
intruders Member Откуда: Сообщений: 140 |
а как его правильно написать то. пребывал select * from ( select id,bank,numdoc from banks where numdoc=1) as s PIVOT ( Count(numdoc) FOR bank in ([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]) ) AS p |
15 июн 15, 17:47 [17773001] Ответить | Цитировать Сообщить модератору |
Владислав Колосов Member Откуда: Сообщений: 8334 |
intruders, структура таблицы для поворота должна быть: [номер повернутой строки] [номер повернутой колонки] [значение]
|
||||||||||||||||||||||
15 июн 15, 18:35 [17773246] Ответить | Цитировать Сообщить модератору |
a_voronin Member Откуда: Москва Сообщений: 4807 |
Версия SQL Server какая ? На 2012 легко развернуть это с помощью LEAD |
15 июн 15, 18:51 [17773296] Ответить | Цитировать Сообщить модератору |
Minamoto Member Откуда: Москва Сообщений: 1162 |
intruders, почему Count(numdoc) то? вам же в колонках значения нужны, а не их количество, верно? Вот и указывайте max(), например. |
15 июн 15, 18:57 [17773318] Ответить | Цитировать Сообщить модератору |
Добрый Э - Эх
Guest |
|
||
15 июн 15, 19:19 [17773391] Ответить | Цитировать Сообщить модератору |
LexusR Member Откуда: Novosibirsk Сообщений: 1887 |
declare @table table(id int,[text] varchar(max),num int) insert into @table(id,[text],num) values (15,'СекцияДокумент=Объявление на взнос наличными',1) ,(16,'Номер=1',1) ,(17,'Дата=09.06.2015',1) ,(18,'Сумма=',1) ,(19,'ПлательщикСчет=',1) ,(20,'ПлательщикИНН=',1) ,(21,'Плательщик=',1) ,(22,'ПлательщикБИК=',1) ,(23,'ПлательщикКорсчет=',1) ,(24,'ПлательщикБанк1=',1) ,(25,'ПлательщикРасчСчет=',1) ,(26,'ПлательщикКПП=',1) ,(27,'ПолучательСчет=',1) ,(28,'ДатаПоступило=09.06.2015',1) ,(29,'Получатель=',1) ,(30,'ПолучательИНН=',1) ,(31,'ПолучательРасчСчет=',1) ,(32,'ПолучательБанк1=',1) ,(33,'ПолучательБИК=',1) ,(34,'ПолучательКорсчет=',1) ,(35,'ПолучательКПП=',1) ,(36,'ВидПлатежа=',1) ,(37,'ВидОплаты=04',1) ,(38,'СрокПлатежа=09.06.2015',1) ,(39,'Очередность=5',1) ,(40,'Код=',1) ,(41,'Назначение',1) ,(42,'КонецДокумента',1) select num,[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] from (select [text],num,ROW_NUMBER()over(PARTITION by num order by id) as RowNo from @table) as s PIVOT ( max([text]) FOR RowNo in ([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]) ) AS p |
||
16 июн 15, 07:28 [17774222] Ответить | Цитировать Сообщить модератору |
Все форумы / Microsoft SQL Server | ![]() |