powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Создание запроса с пользовательскими колонками из значений полей
7 сообщений из 7, страница 1 из 1
Создание запроса с пользовательскими колонками из значений полей
    #39888409
miletoda
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго времени суток.
Прошу помочь в составлении запроса SQL для следующих условий:
имеется таблица (во вложении слева). Требуется на стороне сервера получить эту таблицу с учетом разбивки по столбцам в зависимости от значения поля ВЫПУСК (во вложении справа).
Предполагаю, что требуется использование CASE для каждого поля пользовательской таблицы и группировка по КОМПЛЕКТ?
...
Рейтинг: 0 / 0
Создание запроса с пользовательскими колонками из значений полей
    #39888438
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если "выпуск" ограничивается только значениями А1/А2 - то да, на кейсах.
Иначе - процедура и динамический SQL внутри.
...
Рейтинг: 0 / 0
Создание запроса с пользовательскими колонками из значений полей
    #39888460
miletoda
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
С процедурами никогда не работал - можете подсказать пример показать как должно строиться?
...
Рейтинг: 0 / 0
Создание запроса с пользовательскими колонками из значений полей
    #39888518
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Создание запроса с пользовательскими колонками из значений полей
    #39888870
miletoda
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Akina, на кейсах получился следующий вариант, но он выводит только данные для ревизии А1. Как "поймать" ревизию А2?
Код: sql
1.
2.
3.
4.
5.
6.
7.
SELECT Комплект,
  (CASE Выпуск WHEN 'А1' THEN Дата_выпуска end) AS A1_Дата_выпуска,
  (CASE Выпуск WHEN 'А1' THEN Дата_ответа end) AS A1_Дата_ответа,
  (CASE Выпуск WHEN 'А2' THEN Дата_выпуска end) AS A2_Дата_выпуска,
  (CASE Выпуск WHEN 'А2' THEN Дата_ответа end) AS A2_Дата_ответа
FROM test
GROUP BY комплект
...
Рейтинг: 0 / 0
Создание запроса с пользовательскими колонками из значений полей
    #39888887
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miletoda,

Агрегатную функцию забыли указать, например, MAX. Поэтому данные для негрупповых полей взялись из случайной записи.
Код: sql
1.
2.
3.
4.
5.
6.
7.
SELECT Комплект,
  MAX(CASE Выпуск WHEN 'А1' THEN Дата_выпуска end) AS A1_Дата_выпуска,
  MAX(CASE Выпуск WHEN 'А1' THEN Дата_ответа end) AS A1_Дата_ответа,
  MAX(CASE Выпуск WHEN 'А2' THEN Дата_выпуска end) AS A2_Дата_выпуска,
  MAX(CASE Выпуск WHEN 'А2' THEN Дата_ответа end) AS A2_Дата_ответа
FROM test
GROUP BY комплект
...
Рейтинг: 0 / 0
Создание запроса с пользовательскими колонками из значений полей
    #39888899
miletoda
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
miksoft, спасибо, теперь все работает как надо!
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Создание запроса с пользовательскими колонками из значений полей
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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