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

Откуда:
Сообщений: 47
1 таблица со статьями бюджета
2 таблица со значениями каждой статьи по месяцам:

Статья 1 Месяц 1 Значение 1
Статья 1 Месяц 2 Значение 2
Статья 1 Месяц 3 Значение 3
---------------------
Статья 1 Месяц N Значение N

Значения имеют текстовый формат.

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

Статья Месяц 1 Месяц 2 Месяц 3 --- Месяц N
7 авг 12, 14:24    [12975390]     Ответить | Цитировать Сообщить модератору
 Re: Перекрестный запрос на текстовые поля  [new]
HandKot
Member

Откуда: Sergiev Posad
Сообщений: 2995
pivot
7 авг 12, 14:25    [12975394]     Ответить | Цитировать Сообщить модератору
 Re: Перекрестный запрос на текстовые поля  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 37067
Топ 10, вопрос 10.
7 авг 12, 14:25    [12975398]     Ответить | Цитировать Сообщить модератору
 Re: Перекрестный запрос на текстовые поля  [new]
HG_87
Member

Откуда:
Сообщений: 47
У меня пока только такой вариант:

SELECT     TOP (100) PERCENT dbo.Budget_items.Name, Budget_CF_1.Version, Budget_CF_1.Formula_CF_excel AS [Bef 11], dbo.Budget_CF.Formula_CF_excel AS [Jan 11], 
                      Budget_CF_2.Formula_CF_excel AS [Feb 11], Budget_CF_3.Formula_CF_excel AS [Mar 11], Budget_CF_4.Formula_CF_excel AS [Apr 11], 
                      Budget_CF_5.Formula_CF_excel AS [May 11]
FROM         dbo.Budget_CF AS Budget_CF_1 INNER JOIN
                      dbo.Budget_CF ON Budget_CF_1.Version = dbo.Budget_CF.Version AND Budget_CF_1.Budget_items = dbo.Budget_CF.Budget_items INNER JOIN
                      dbo.Budget_items ON Budget_CF_1.Budget_items = dbo.Budget_items.ID INNER JOIN
                      dbo.Budget_CF AS Budget_CF_2 ON Budget_CF_1.Budget_items = Budget_CF_2.Budget_items AND Budget_CF_1.Version = Budget_CF_2.Version INNER JOIN
                      dbo.Budget_CF AS Budget_CF_3 ON Budget_CF_1.Budget_items = Budget_CF_3.Budget_items AND Budget_CF_1.Version = Budget_CF_3.Version INNER JOIN
                      dbo.Budget_CF AS Budget_CF_4 ON Budget_CF_1.Budget_items = Budget_CF_4.Budget_items AND Budget_CF_1.Version = Budget_CF_4.Version INNER JOIN
                      dbo.Budget_CF AS Budget_CF_5 ON Budget_CF_1.Budget_items = Budget_CF_5.Budget_items AND Budget_CF_1.Version = Budget_CF_5.Version
WHERE     (dbo.Budget_items.RC = 1) AND (Budget_CF_1.Period = 1) AND (dbo.Budget_CF.Period = 2) AND (Budget_CF_2.Period = 3) AND (Budget_CF_3.Period = 4) AND 
                      (Budget_CF_4.Period = 5) AND (Budget_CF_5.Period = 6)
ORDER BY dbo.Budget_items.Number, Budget_CF_1.Version
7 авг 12, 14:26    [12975401]     Ответить | Цитировать Сообщить модератору
 Re: Перекрестный запрос на текстовые поля  [new]
HG_87
Member

Откуда:
Сообщений: 47
HandKot,

Pivot на текстовые поля не помогает.
7 авг 12, 14:33    [12975467]     Ответить | Цитировать Сообщить модератору
 Re: Перекрестный запрос на текстовые поля  [new]
Glory
Member

Откуда:
Сообщений: 104760
HG_87
Pivot на текстовые поля не помогает.

Кому не помогает ?
7 авг 12, 14:35    [12975475]     Ответить | Цитировать Сообщить модератору
 Re: Перекрестный запрос на текстовые поля  [new]
HG_87
Member

Откуда:
Сообщений: 47
Glory, при применении pivot вылетает ошибка про формат данных.
7 авг 12, 14:49    [12975615]     Ответить | Цитировать Сообщить модератору
 Re: Перекрестный запрос на текстовые поля  [new]
Glory
Member

Откуда:
Сообщений: 104760
HG_87
Glory, при применении pivot вылетает ошибка про формат данных.

Т.е. теперь еще нужно угадать текст вашего запроса с pivot и текст ошибки ?
7 авг 12, 14:52    [12975646]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить