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

Откуда: Саратов
Сообщений: 1217
Всем привет.

есть таблица
create table T1(F1 varchar(20), F2 varchar(20))


данные для таблицы
insert into T1('документ','123')
insert into T1('плательщик','Фирма А')
insert into T1('документ','567')
insert into T1('плательщик','Фирма Б')


F1 F2
документ 123
плательщик фирма А
документ 567
плательщик фирма Б

нужно развернуть таблицу чтоб вид получился такой


документ плательщик
123 фирма А
567 фирма Б

возможно с помощью PIVOT это можно сделать но как заставить PIVOT правильно разворачивать поля типа varchar?
25 июл 14, 15:15    [16358195]     Ответить | Цитировать Сообщить модератору
 Re: Помогите пожалуйста составить запрос  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
а как связаны документы с фирмами то ????
25 июл 14, 15:18    [16358209]     Ответить | Цитировать Сообщить модератору
 Re: Помогите пожалуйста составить запрос  [new]
Mandarin
Member

Откуда: Саратов
Сообщений: 1217
Maxx,

в том то и дело что никак (отдельно спасибо программистам клиент банка за такую выгрузку), все за что можно зацепится это порядок записей и точное количество строк в документе (на примере два документа по две строки)
25 июл 14, 15:32    [16358323]     Ответить | Цитировать Сообщить модератору
 Re: Помогите пожалуйста составить запрос  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
Нумеруйте записи, или связывайте ключом. Без этого задача не решаема в принципе.

Сообщение было отредактировано: 25 июл 14, 15:34
25 июл 14, 15:33    [16358333]     Ответить | Цитировать Сообщить модератору
 Re: Помогите пожалуйста составить запрос  [new]
Konst_One
Member

Откуда:
Сообщений: 11621
и как тут гарантируется порядок записей?
25 июл 14, 15:34    [16358341]     Ответить | Цитировать Сообщить модератору
 Re: Помогите пожалуйста составить запрос  [new]
Mandarin
Member

Откуда: Саратов
Сообщений: 1217
Konst_One,

понятно ... буду записи нумеровать, через них разверну, спасибо.
25 июл 14, 15:38    [16358381]     Ответить | Цитировать Сообщить модератору
 Re: Помогите пожалуйста составить запрос  [new]
DmitryVT
Member

Откуда: VRN
Сообщений: 192
наверное только так
create table #T1(ID INT  IDENTITY(1,1),F1 varchar(20), F2 varchar(20))


insert into #T1 (F1,F2) SELECT 'документ','123'
insert into #T1 (F1,F2) SELECT 'плательщик','Фирма А'
insert into #T1 (F1,F2) SELECT 'документ','567'
insert into #T1 (F1,F2) SELECT 'плательщик','Фирма Б'
insert into #T1 (F1,F2) SELECT 'документ','999'
insert into #T1 (F1,F2) SELECT 'плательщик','Фирма B'


SELECT T2.F2 , T1.F2
FROM #T1 AS T1 INNER JOIN #T1 AS T2 ON T1.ID = T2.ID+1 
WHERE T1.ID % 2 = 0

---
 DROP TABLE #T1

но если вдруг порядок будет нарушен, результат будет печальным
25 июл 14, 15:44    [16358437]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить