|
FB 2.5 помощь с запросом
|
|||
---|---|---|---|
#18+
Всем привет! Подскажите возможно ли такое, имеем: :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; ... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2018, 03:45 |
|
FB 2.5 помощь с запросом
|
|||
---|---|---|---|
#18+
select ost,spd,ext from tmp where articul = :v_str into 'тут я не знаю, но типо' column = v_fl3, column = v_fl3, column = v_fl3; немного правильнее ... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2018, 03:47 |
|
FB 2.5 помощь с запросом
|
|||
---|---|---|---|
#18+
Kostin-M-I, Сил никаких не хватает прорываться через этот поток сознания. Ну напиши нормальным языком что надо сделать и что не получается ... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2018, 06:35 |
|
FB 2.5 помощь с запросом
|
|||
---|---|---|---|
#18+
m7mKostin-M-I, Сил никаких не хватает прорываться через этот поток сознания. Ну напиши нормальным языком что надо сделать и что не получается Надо положить значение полученное select-ом в ячейку, имя столбца переменное, значение столбца лежит в другой таблице ... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2018, 06:56 |
|
FB 2.5 помощь с запросом
|
|||
---|---|---|---|
#18+
Kostin-M-Im7mKostin-M-I, Сил никаких не хватает прорываться через этот поток сознания. Ну напиши нормальным языком что надо сделать и что не получается Надо положить значение полученное select-ом в ячейку, имя столбца переменное, значение столбца лежит в другой таблице Это пожалуй поможет А это уж точно Однако может лучше задуматься а надо ли такое ... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2018, 07:12 |
|
FB 2.5 помощь с запросом
|
|||
---|---|---|---|
#18+
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, в итоге процедура оч большая получается, и когда надо что то подправить в ней, уж больно много времени занимает. Вот я и решил попробовать сократить код процедуры. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2018, 08:17 |
|
FB 2.5 помощь с запросом
|
|||
---|---|---|---|
#18+
Kostin-M-Iпроцедура оч большая получаетсяБуковок жалко что ли? Я ничего не понял, мобыть табличкой нарисуй, что откуда и куда и чего спросить-то хотел? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2018, 14:00 |
|
FB 2.5 помощь с запросом
|
|||
---|---|---|---|
#18+
Ivan_PisarevskyБуковок жалко что ли? Периодически меняю формулы, в или что то дописываю, хочется сократить текст, чтобы меньше путаться ... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2018, 15:21 |
|
FB 2.5 помощь с запросом
|
|||
---|---|---|---|
#18+
Kostin-M-I, если один и тот же кусок кода (или похожий) пишется более трех раз, это значит, что надо пересмотреть решение задачи. Пример вот такого выноса мозга повторами тут 21333304 ... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2018, 15:31 |
|
FB 2.5 помощь с запросом
|
|||
---|---|---|---|
#18+
kdvKostin-M-I, если один и тот же кусок кода (или похожий) пишется более трех раз, это значит, что надо пересмотреть решение задачи. Пример вот такого выноса мозга повторами тут 21333304 Так этим и занимаюсь ... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2018, 15:42 |
|
FB 2.5 помощь с запросом
|
|||
---|---|---|---|
#18+
Ivan_PisarevskyЯ ничего не понял, мобыть табличкой нарисуй, что откуда и куда и чего спросить-то хотел? Накидал таблиц, желтым выделены значения таблицы ui_identy_sklad, которые нужно использовать для идентификации столбца, при добавлении в них значений ... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2018, 15:47 |
|
FB 2.5 помощь с запросом
|
|||
---|---|---|---|
#18+
Так правильнее ... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2018, 15:52 |
|
FB 2.5 помощь с запросом
|
|||
---|---|---|---|
#18+
Kostin-M-IВ таком варианте не устраивает то что для каждого столбца, таких еще 32 штуки :ost_abs, :ost_des, :ost_slv..., приходится писать select Пойди к идиоту, спроектировавшему эту базу, набей морду и заставь переделать, сократив 33 столбца до одного. Тогда задача станет тривиальной. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2018, 16:06 |
|
FB 2.5 помощь с запросом
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovKostin-M-IВ таком варианте не устраивает то что для каждого столбца, таких еще 32 штуки :ost_abs, :ost_des, :ost_slv..., приходится писать select Пойди к идиоту, спроектировавшему эту базу, набей морду и заставь переделать, сократив 33 столбца до одного. Тогда задача станет тривиальной. Ну на самом деле не все так печально... Данная процедура написана мной, я далеко не гуру, временные таблицы тоже добавлены мной, сейчас все работает, но код реально большой, по итогу процедуры, получаю выходные данные, столбцов 36, строк около 1000, время формирования около 3-4 секунд, таблицы из которых берет данные большие, мой длинный код не идеальный, но что требуется, делает. Суть процедуры в следующем, для 11 торговых точек, заполняются значения, остатка, скорости продаж, и отклонение остатка, у некоторых карточек есть карточки аналоги, по ним данные нужно плюсовать к основной. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2018, 16:32 |
|
FB 2.5 помощь с запросом
|
|||
---|---|---|---|
#18+
Kostin-M-IНу на самом деле не все так печально... Данная процедура написана мной Тогда всё ещё печальнее: денормализация должна ускорять и упрощать код. У тебя же она делает всё с точностью до наоборот. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2018, 17:37 |
|
FB 2.5 помощь с запросом
|
|||
---|---|---|---|
#18+
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 ... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2018, 14:27 |
|
|
start [/forum/topic.php?fid=40&fpage=34&tid=1561158]: |
0ms |
get settings: |
8ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
44ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
52ms |
get tp. blocked users: |
1ms |
others: | 324ms |
total: | 461ms |
0 / 0 |