powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Разложить строки запросом в одну строку
8 сообщений из 8, страница 1 из 1
Разложить строки запросом в одну строку
    #39752247
KIBER
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день!
Как отобрать из таблицы Товар по Характеристике, выбрав первую и последнюю даты по этой Характеристике и написать в одну строку.
Все данные в одной строке должны быть связаны относительно конкретной Характеристики.
Во вложении пример как есть и как должно стать.
Помогите пожалуйста написать запрос для MS SQL Server 2016
...
Рейтинг: 0 / 0
Разложить строки запросом в одну строку
    #39752248
KIBER
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Файл не прикрепился, повторно вложил.
...
Рейтинг: 0 / 0
Разложить строки запросом в одну строку
    #39752303
KIBER
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Забыл приложить запрос.
Я добился того, что разными запросами могу вытащить нужные мне данные, но как мне объединить их в одну строчку по Характеристике?

SELECT * FROM Table_1 AS a WHERE Период = (SELECT MIN(Период) FROM Table_1 AS b WHERE a.Характеристика = b.Характеристика) ORDER BY a.Характеристика
SELECT * FROM Table_1 AS a WHERE Период = (SELECT MAX(Период) FROM Table_1 AS b WHERE a.Характеристика = b.Характеристика) ORDER BY a.Характеристика
...
Рейтинг: 0 / 0
Разложить строки запросом в одну строку
    #39752306
Andy_OLAP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KIBERЗабыл приложить запрос.
Я добился того, что разными запросами могу вытащить нужные мне данные, но как мне объединить их в одну строчку по Характеристике?

SELECT * FROM Table_1 AS a WHERE Период = (SELECT MIN(Период) FROM Table_1 AS b WHERE a.Характеристика = b.Характеристика) ORDER BY a.Характеристика
SELECT * FROM Table_1 AS a WHERE Период = (SELECT MAX(Период) FROM Table_1 AS b WHERE a.Характеристика = b.Характеристика) ORDER BY a.Характеристика
Ну вот если совсем просто сделать.
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
SELECT
a.column1
,a.column2
,a.Период
,(select top 1 b.Период from Table_1 AS b where a.Характеристика = b.Характеристика order by b.Период asc) as min_Период
,(select top 1 c.Период from Table_1 AS c where a.Характеристика = c.Характеристика order by c.Период desc) as max_Период
FROM Table_1 AS a
ORDER BY a.Характеристика
...
Рейтинг: 0 / 0
Разложить строки запросом в одну строку
    #39752327
KIBER
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Andy_OLAP,
Не работает конструкция :(
Просто создает еще два поля в таблице и заполняет их максимальными и минимальными датами и выводит всю таблицу.
...
Рейтинг: 0 / 0
Разложить строки запросом в одну строку
    #39752328
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Разложить строки запросом в одну строку
    #39755507
Rigersong
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: sql
1.
2.
3.
4.
5.
SELECT *
	, Период = MIN(Период) + ' - ' + MAX(Период)
FROM Table_1
WHERE a.Характеристика = b.Характеристика
ORDER BY a.Характеристика
...
Рейтинг: 0 / 0
Разложить строки запросом в одну строку
    #39755568
andrey odegov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
WITH
  A AS (
    SELECT
      *,
      RANK() OVER (PARTITION BY Характеристика ORDER BY Период) AS mn
      RANK() OVER (PARTITION BY Характеристика ORDER BY Период DESC) AS mx
    FROM Table_1
  )
SELECT * FROM A WHERE mn = 1 OR mx = 1;
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Разложить строки запросом в одну строку
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]