Форум программистов, компьютерный форум, киберфорум
Microsoft SQL Server
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.97/113: Рейтинг темы: голосов - 113, средняя оценка - 4.97
 Аватар для maria_mf
0 / 0 / 0
Регистрация: 02.12.2009
Сообщений: 5

Как объединить столбцы?

02.12.2009, 19:25. Показов 23070. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть несколько столбцов с аналогичным типом данных внутри, как их соединить?

Т.е. примерно так
|квартал 1| квартал 2| квартал 3| квартал 4|
| 1000 | 200 | 700 | 5000 |
| 450 | 560 |800 | 2000 |
| 800 | 500 | 700 | 1000 |
а нужно
|количество| квартал|
| 1000 | 1 |
| 450 | 1 |
| 800 | 1 |
| 200 | 2 |

и так далее

Создать столбец "квартал" мне удалось, а вот заполнить столбец "количество" не получается.
Помогите чем можете.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
02.12.2009, 19:25
Ответы с готовыми решениями:

В запросе объединить все столбцы в один
1. Составьте запрос для таблицы STUDENT таким образом, чтобы выходная таблица содержала один столбец, содержащий последовательность...

Объединить все существующие столбцы таблицы
В таблице много столбцов, мне нужно их объединить. Можно ли как-то их все объединить, не перечисляя название каждого столбца в функции...

Как объединить столбцы в запросе?
Здравствуйте! Создаю запрос на вывод должников и суммы долга. Есть несколько проблем(( помогите, пожалуйста) 1) Как объединить...

11
 Аватар для BasicMan
19318 / 2626 / 84
Регистрация: 17.02.2009
Сообщений: 30,364
02.12.2009, 21:37
T-SQL
1
2
3
4
5
6
7
8
insert into tableNew (количество, квартал)
select [квартал 1] as количество, 1 as квартал from table
union all
select [квартал 2] as количество, 2 as квартал from table
union all
select [квартал 3] as количество, 3 as квартал from table
union all
select [квартал 4] as количество, 4 as квартал from table
0
 Аватар для maria_mf
0 / 0 / 0
Регистрация: 02.12.2009
Сообщений: 5
03.12.2009, 14:29  [ТС]
А можно ли как-то обойтись одним select'ом?
Дело в том, что таблица настолько громоздка, что если для каждого столбца делать отдельный запрос, то он будет размером с 5 страниц а4.

Добавлено через 1 час 18 минут
0
 Аватар для BasicMan
19318 / 2626 / 84
Регистрация: 17.02.2009
Сообщений: 30,364
03.12.2009, 14:31
Цитата Сообщение от maria_mf Посмотреть сообщение
А можно ли как-то обойтись одним select'ом?
может и можно, но я такого варианта не знаю
0
1116 / 761 / 183
Регистрация: 27.11.2009
Сообщений: 2,272
03.12.2009, 15:27
Так годится? (SQL2005/2008)
T-SQL
1
2
3
4
5
6
7
8
9
10
DECLARE @T TABLE([квартал 1] INT, [квартал 2] INT, [квартал 3] INT, [квартал 4] INT);
INSERT @T([квартал 1], [квартал 2], [квартал 3], [квартал 4])
          SELECT 1000, 200, 700, 5000
UNION ALL SELECT  450, 560, 800, 2000
UNION ALL SELECT  800, 500, 700, 1000;
 
SELECT [количество], [квартал]
FROM (SELECT [квартал 1], [квартал 2], [квартал 3], [квартал 4] FROM @T) P
UNPIVOT ([количество] FOR [квартал] IN ([квартал 1], [квартал 2], [квартал 3], [квартал 4])) U
ORDER BY [квартал];
1
 Аватар для BasicMan
19318 / 2626 / 84
Регистрация: 17.02.2009
Сообщений: 30,364
03.12.2009, 17:09
iap, нет, не годится. потому что это таблица, а не просто данные от фонаря
0
1116 / 761 / 183
Регистрация: 27.11.2009
Сообщений: 2,272
03.12.2009, 17:46
Цитата Сообщение от CyberБурундукЪ Посмотреть сообщение
iap, нет, не годится. потому что это таблица, а не просто данные от фонаря
Простите, не понял. Поподробнее можно?
Это данные не "от фонаря", а из первого поста этой темы.
Результат надо положить в другую таблицу? Какие проблемы?
1
 Аватар для BasicMan
19318 / 2626 / 84
Регистрация: 17.02.2009
Сообщений: 30,364
03.12.2009, 18:08
вот это супер
Цитата Сообщение от iap Посмотреть сообщение
T-SQL
1
2
3
4
SELECT [количество], [квартал]
FROM (SELECT [квартал 1], [квартал 2], [квартал 3], [квартал 4] FROM @T) P
UNPIVOT ([количество] FOR [квартал] IN ([квартал 1], [квартал 2], [квартал 3], [квартал 4])) U
ORDER BY [квартал];
только вместо табличной переменной @T использовать имя таблицы в которой находятся данные
1
 Аватар для maria_mf
0 / 0 / 0
Регистрация: 02.12.2009
Сообщений: 5
03.12.2009, 21:45  [ТС]
Спасибо)))
вроде работает
Нужно таперь попробовать на более сложной таблице
0
1116 / 761 / 183
Регистрация: 27.11.2009
Сообщений: 2,272
04.12.2009, 09:00
Можно и по-другому (для любого сервера MS SQL >= 2000)
T-SQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
SET NOCOUNT ON;
 
DECLARE @T TABLE([квартал 1] INT, [квартал 2] INT, [квартал 3] INT, [квартал 4] INT);
INSERT @T([квартал 1], [квартал 2], [квартал 3], [квартал 4])
          SELECT 1000, 200, 700, 5000
UNION ALL SELECT  450, 560, 800, 2000
UNION ALL SELECT  800, 500, 700, 1000;
 
 
SELECT
 CASE Columns.[квартал]
  WHEN 1 THEN T.[квартал 1]
  WHEN 2 THEN T.[квартал 2]
  WHEN 3 THEN T.[квартал 3]
  WHEN 4 THEN T.[квартал 4]
 END [количество],
 Columns.[квартал]
FROM @T T
CROSS JOIN (SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4) Columns([квартал])
ORDER BY Columns.[квартал];
1
 Аватар для maria_mf
0 / 0 / 0
Регистрация: 02.12.2009
Сообщений: 5
07.12.2009, 14:01  [ТС]
АААААА!!!!!!!!!!!!!!!!!!
Получилось!!!!!!!!!!!!!!!! Спасибо!!!!!!!!!!!!!!!!
0
0 / 0 / 1
Регистрация: 19.02.2015
Сообщений: 43
20.02.2015, 06:43
если это char тогда можно одном селекте писать так
SQL
1
SELECT kvartal1 + kvartal2 AS kvartal FROM dbo.kvartal
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
20.02.2015, 06:43
Помогаю со студенческими работами здесь

TableLayoutPanel: как объединить столбцы?
Здравствуйте, помогите пожалуйста, у меня есть 4 столбца и 4 строки и для 2й строки нужно объединить два столбика но для других строк...

Как объединить столбцы таблицы под друг другом?
Всем привет! я новичок в программировании. Заранее извиняюсь за тупой вопрос. Мне нужно чтобы три столбца (предположим как в excel)...

Объединить столбцы
Помогите сделать кнопки "Перезапустить" и "Тестовая печать" на одной строке (размеры пополам) <Border ...

Объединить столбцы GridView
Всем привет! Хочу объединить два столбца (номер и дата) в GridView (чтоб были под общим столбцом Документ). Пытался добавить ItemTemplate...

Если в матрице повторяющиеся столбцы, то сжать ее, оставив только столбцы уникальные
Дана прямоугольная матрица,если в матрице есть столбики,которые повторяются,то нужно сжать матрицу так,чтоб были только разные столбики.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-text-sdl3-c. zip finish-text-sdl3-cpp. zip
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло. Но на выплатах по больничным это. . .
Контроль уникальности заводского номера
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере нетипового документа выдачи шин для спецтехники с табличной частью, разработанного в конфигурации КА2. Номеклатура. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru