powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Строки одной таблицы как колонки для другой
7 сообщений из 7, страница 1 из 1
Строки одной таблицы как колонки для другой
    #39211658
shishkins2006
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброе время суток, форумчане! Встал вот такой вопрос: Есть 2 таблицы:

1: params
Код: plaintext
1.
2.
3.
4.
id - int(2)               name - text
1                           ХВС
2                           ГВС
3                           Свет 

2: const
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
date_of_data - date       parameter - int(2)          value - text       schet - decimal(11)
21-05-2015                   1                                 32              10254213541
21-05-2015                   2                                 25              10254213541
21-05-2015                   3                                 1524            10254213541
21-06-2015                   1                                 35              10254213541
21-06-2015                   2                                 27              10254213541
21-06-2015                   3                                 1843            10254213541

Таблицы связаны по полю param.id->const.parameter

Вопрос: насколько реален запрос, который выберет значения параметров из таблицы const в следующем виде:

Код: plaintext
1.
2.
date_of_data     ХВС     ГВС     Свет
21-05-2015       32       25       1524
21-06-2015       35       27       1843

Прошу пардон за корявое объяснение, 1С-ники меня поймут быстро.
...
Рейтинг: 0 / 0
Строки одной таблицы как колонки для другой
    #39211723
Фотография javajdbc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
shishkins2006Доброе время суток, форумчане! Встал вот такой вопрос: Есть 2 таблицы:

1: params
Код: plaintext
1.
2.
3.
4.
id - int(2)               name - text
1                           ХВС
2                           ГВС
3                           Свет 
2: const
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
date_of_data - date       parameter - int(2)          value - text       schet - decimal(11)
21-05-2015                   1                                 32              10254213541
21-05-2015                   2                                 25              10254213541
21-05-2015                   3                                 1524            10254213541
21-06-2015                   1                                 35              10254213541
21-06-2015                   2                                 27              10254213541
21-06-2015                   3                                 1843            10254213541
Таблицы связаны по полю param.id->const.parameter

Вопрос: насколько реален запрос, который выберет значения параметров из таблицы const в следующем виде:

Код: plaintext
1.
2.
date_of_data     ХВС     ГВС     Свет
21-05-2015       32       25       1524
21-06-2015       35       27       1843
Прошу пардон за корявое объяснение, 1С-ники меня поймут быстро.




Код: sql
1.
2.
3.
4.
5.
6.
select date_of_data
max(if(param=1,value,null)) XBC,
max(if(param=2,value,null) GVC,
max(case when param=3 then value else null end) SVET
from lsschet
group by date_of_data



CASE и IF -- работают одинаково, может использовать любую конструкцию.
...
Рейтинг: 0 / 0
Строки одной таблицы как колонки для другой
    #39213511
shishkins2006
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо огромное за ответ.

Маленькое уточнение: таблица params - не случайна. В нее могут динамически вводиться ЛЮБЫЕ параметры. Нужно выбрать Все параметры.
...
Рейтинг: 0 / 0
Строки одной таблицы как колонки для другой
    #39213622
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
shishkins2006В нее могут динамически вводиться ЛЮБЫЕ параметры. Нужно выбрать Все параметры.В таком случае этой проблемой должен заниматься клиент. Ну или ХП и prepared statement.
...
Рейтинг: 0 / 0
Строки одной таблицы как колонки для другой
    #39213683
shishkins2006
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Akina,

Ну при чем здесь клиент?
Надо чтобы внутри запроса вот это
max(if(param=1,value,null)) XBC,
max(if(param=2,value,null) GVC,
max(case when param=3 then value else null end) SVET

автоматически генерировалось на основании данных таблицы params, т.е. выводились все параметры, которые есть в таблице params. Вот с этим и загвоздка...
...
Рейтинг: 0 / 0
Строки одной таблицы как колонки для другой
    #39213712
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ответ дан - prepared statement в рамках хранимой процедуры.

Вот только что ты потом будешь делать с результатом... в качестве источника данных для других запросов он не подходит, потому как структура не определена. А если для отображения на клиенте - то, как я уже сказал, правильнее пивотить линейные данные именно там.
...
Рейтинг: 0 / 0
Строки одной таблицы как колонки для другой
    #39213804
shishkins2006
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Akina,
Akinaдля отображения на клиенте

Спасибо за наводку. Буду копать хранимые процедуры, хотя для меня пока это - темный лес.
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Строки одной таблицы как колонки для другой
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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