1. SQL / Говнокод #17200

    −867

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    set @query_modern=CONCAT('
    SELECT  podrazdel,NSI_R.m0137.ncex as name_otdel,card.sint_schet,card.inv_num,name,date_dok,summa_modern,
    nach_stoim,ostat_stoim,nach_stoim+sum(summa_modern),ostat_stoim+sum(summa_modern),summa_iznosa,
    srok_iznosa , (new_let*12)+new_mes as dobal_srok,srok_iznosa+(new_let*12)+new_mes as new_srok_iznosa
    FROM card LEFT JOIN modern on modern.inv_num=card.inv_num,',@amort_table,' ,NSI_R.m0137
    where iznos<100 and card.inv_num=',@amort_table,'.inv_num  and NSI_R.m0137.kcex=SUBSTR(card.podrazdel FROM 1 FOR 3)
    GROUP BY card.inv_num
    ORDER BY podrazdel');
    PREPARE Modern_query from @query_modern;
    EXECUTE Modern_query;
    DEALLOCATE PREPARE Modern_query;

    Это код в хранимой процедуре MySQL
    Может кто знает как в хранимую процедуру передать имя таблицы

    Запостил: betking1, 27 Ноября 2014

    Комментарии (4) RSS

    • В нормальных СУБД можно, в MySQL раньше было нельзя. Теперь не знаю.

      >>NSI_R.m0137.kcex=SUBSTR(card.podrazd el FROM 1 FOR 3)
      люблю такой код. его удобно править и легко понимать
      Ответить
    • Передать-то можно. Но вот использовать, кроме как через EXECUTE никак-никак прям, но это бред сивой кобылы. Беда, одним словом.
      Ответить
      • даа(( а все из за архитектуры фокспрошной, отдельная таблица амортизации на каждый месяц
        Ответить

    Добавить комментарий