powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / FB 2.5 помощь с запросом
17 сообщений из 17, страница 1 из 1
FB 2.5 помощь с запросом
    #39630161
Kostin-M-I
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем привет!
Подскажите возможно ли такое, имеем:
:v_fl1...:v_fl3 - идентификатор столбца выходного параметра, заполняется запросом из таблицы, в которой хранятся соответствия столбца и строки
:v_str - идентификатор строки выходного параметра, заполняется запросом из таблицы, в которой хранятся соответствия столбца и строки
Выполняемая процедура делает ряд запросов и вычислений, скидывает их во временную таблицу, далее обновляет выходные значения по строкам, но вот столбцы пока прописываю ручкаю, выглядит так:
select ost from tmp where articul = :articul into ost1;
Хотелось бы так:
for select distinct fl1, fl2, fl1 from identy into :v_fl1, v_fl1, v_fl1 where cl= '111' do begin (значение '111' будет подставляться из предедущего for select)
select ost,spd,ext from tmp where articul = :articul into 'тут я не знаю, но типо' column = v_fl3, column = v_fl3, column = v_fl3;
...
Рейтинг: 0 / 0
FB 2.5 помощь с запросом
    #39630162
Kostin-M-I
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
select ost,spd,ext from tmp where articul = :v_str into 'тут я не знаю, но типо' column = v_fl3, column = v_fl3, column = v_fl3;
немного правильнее
...
Рейтинг: 0 / 0
FB 2.5 помощь с запросом
    #39630163
m7m
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kostin-M-I,

Сил никаких не хватает прорываться через этот поток сознания.
Ну напиши нормальным языком что надо сделать и что не получается
...
Рейтинг: 0 / 0
FB 2.5 помощь с запросом
    #39630165
Kostin-M-I
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
m7mKostin-M-I,

Сил никаких не хватает прорываться через этот поток сознания.
Ну напиши нормальным языком что надо сделать и что не получается

Надо положить значение полученное select-ом в ячейку, имя столбца переменное, значение столбца лежит в другой таблице
...
Рейтинг: 0 / 0
FB 2.5 помощь с запросом
    #39630166
m7m
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kostin-M-Im7mKostin-M-I,

Сил никаких не хватает прорываться через этот поток сознания.
Ну напиши нормальным языком что надо сделать и что не получается

Надо положить значение полученное select-ом в ячейку, имя столбца переменное, значение столбца лежит в другой таблице


Это пожалуй поможет
А это уж точно
Однако может лучше задуматься а надо ли такое
...
Рейтинг: 0 / 0
FB 2.5 помощь с запросом
    #39630170
Kostin-M-I
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
m7mKostin-M-Iпропущено...


Надо положить значение полученное select-ом в ячейку, имя столбца переменное, значение столбца лежит в другой таблице


Это пожалуй поможет
А это уж точно
Однако может лучше задуматься а надо ли такое
Видимо объяснялкин из меня никудышный....
Нужно найти название столбца по значению переменной, и положить туда значение другой переменной. Как то так.
Кусок будущей процедуры для наглядности:
for select distinct cl1, ost from ui_identy_sklad into :v_cl1, v_n_ost do begin --определяю перечень значений по которым буду делать заполнение, где :v_cl1 (значение для следующего select), :v_n_ost (имя столбца в который надо положить)
select quantity from ostatok where place_index = :v_cl1 into :v_ost; - выбираю значение которое потом станет выходным
update ui_tmp_analiz_ostatka set ost = :v_ost where sklad = :v_cl2; --ложу выбранное ранее, во временную таблицу, оно у меня потом еще будет пересчитываться

Сейчас выходное значение записываю обычным образом:
select ost from ui_tmp_analiz_ostatka where sklad = :v_cl2 into :ost_abs;
В таком варианте не устраивает то что для каждого столбца, таких еще 32 штуки :ost_abs, :ost_des, :ost_slv..., приходится писать select, в итоге процедура оч большая получается, и когда надо что то подправить в ней, уж больно много времени занимает. Вот я и решил попробовать сократить код процедуры.
...
Рейтинг: 0 / 0
FB 2.5 помощь с запросом
    #39630228
Ivan_Pisarevsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kostin-M-Iпроцедура оч большая получаетсяБуковок жалко что ли?

Я ничего не понял, мобыть табличкой нарисуй, что откуда и куда и чего спросить-то хотел?
...
Рейтинг: 0 / 0
FB 2.5 помощь с запросом
    #39630247
Kostin-M-I
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ivan_PisarevskyБуковок жалко что ли?
Периодически меняю формулы, в или что то дописываю, хочется сократить текст, чтобы меньше путаться
...
Рейтинг: 0 / 0
FB 2.5 помощь с запросом
    #39630250
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kostin-M-I,

если один и тот же кусок кода (или похожий) пишется более трех раз, это значит, что надо пересмотреть решение задачи.
Пример вот такого выноса мозга повторами тут 21333304
...
Рейтинг: 0 / 0
FB 2.5 помощь с запросом
    #39630258
Kostin-M-I
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
kdvKostin-M-I,

если один и тот же кусок кода (или похожий) пишется более трех раз, это значит, что надо пересмотреть решение задачи.
Пример вот такого выноса мозга повторами тут 21333304
Так этим и занимаюсь
...
Рейтинг: 0 / 0
FB 2.5 помощь с запросом
    #39630261
Kostin-M-I
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ivan_PisarevskyЯ ничего не понял, мобыть табличкой нарисуй, что откуда и куда и чего спросить-то хотел?
Накидал таблиц, желтым выделены значения таблицы ui_identy_sklad, которые нужно использовать для идентификации столбца, при добавлении в них значений
...
Рейтинг: 0 / 0
FB 2.5 помощь с запросом
    #39630263
Kostin-M-I
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
...
Рейтинг: 0 / 0
FB 2.5 помощь с запросом
    #39630265
Kostin-M-I
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Так правильнее
...
Рейтинг: 0 / 0
FB 2.5 помощь с запросом
    #39630269
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kostin-M-IВ таком варианте не устраивает то что для каждого столбца, таких еще 32 штуки :ost_abs,
:ost_des, :ost_slv..., приходится писать select

Пойди к идиоту, спроектировавшему эту базу, набей морду и заставь переделать, сократив 33
столбца до одного. Тогда задача станет тривиальной.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
FB 2.5 помощь с запросом
    #39630274
Kostin-M-I
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry SibiryakovKostin-M-IВ таком варианте не устраивает то что для каждого столбца, таких еще 32 штуки :ost_abs,
:ost_des, :ost_slv..., приходится писать select

Пойди к идиоту, спроектировавшему эту базу, набей морду и заставь переделать, сократив 33
столбца до одного. Тогда задача станет тривиальной.

Ну на самом деле не все так печально... Данная процедура написана мной, я далеко не гуру, временные таблицы тоже добавлены мной, сейчас все работает, но код реально большой, по итогу процедуры, получаю выходные данные, столбцов 36, строк около 1000, время формирования около 3-4 секунд, таблицы из которых берет данные большие, мой длинный код не идеальный, но что требуется, делает.
Суть процедуры в следующем, для 11 торговых точек, заполняются значения, остатка, скорости продаж, и отклонение остатка, у некоторых карточек есть карточки аналоги, по ним данные нужно плюсовать к основной.
...
Рейтинг: 0 / 0
FB 2.5 помощь с запросом
    #39630282
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kostin-M-IНу на самом деле не все так печально... Данная процедура написана мной

Тогда всё ещё печальнее: денормализация должна ускорять и упрощать код. У тебя же она
делает всё с точностью до наоборот.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
FB 2.5 помощь с запросом
    #39630824
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kostin-M-IСуть процедуры в следующем, для 11 торговых точек, заполняются значения

если у тебя 4 столбца на точку (SKLAD_*, OST_*, SPD_*, EXT_*), то должно быть более 44 столбцов, а у тебя только 36 ?

Но да, то, что ты кажется сделал, называется "шахматка", и делать это должны клиенты.

Тупой вопрос - если у тебя пара торговых точек закроется или пяток новых точек откроется - что ты будешь делать?
Допустим, у тебя в 2016 году было 10 точек, а в 2018 - 15 точек.

И вот в 2019 запускают процедуру генерации отчетов - как она будет работать с по сути переменным числом столбцов ?


PS. ПОЖАЛУЙСТА, научись на форуме нормально вставлять исходные етксты и таблицы.
http://www.sql.ru/faq/faq_topic.aspx?fid=202
...
Рейтинг: 0 / 0
17 сообщений из 17, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / FB 2.5 помощь с запросом
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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