Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Помогите новичку. / 3 сообщений из 3, страница 1 из 1
29.09.2016, 07:02
    #39317427
Vis1712_kz
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите новичку.
Я программирую примерно 4 года. Недавно на работе потребовалось выгрузить данные из бд. Бд - FireBird. Язык: SQL. Есть уже похожая процедура в базе, которую писал человек до меня. Мне нужно ее чуть чуть переделать под текущие реалии. Вот она:

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
begin
  if((not ip_year is null) and ip_year < 100) then
    ip_year = ip_year + 2000;
  m_up = ip_year*100 + ip_month;

  for select dj.site_id,
             dj.dj_doc_date,
              case dj.dj_doc_smena_type
                when 1 then 'День'
                when 2 then 'Ночь'
                else 'Ошибка!'
              end,
              dj.dj_doc_smena_num,
              dj.garajnumber,dj.markts_ext,
              dj.transport_type10,
              tt.acc_kod_str,tt.descr,
              tm.note,
              tb.tt_rts_begin,tb.tt_rts_end,
              tb.duration
       from site_dj_transport dj
            inner join site_dj_transport_time_tb tb on (dj.idg = tb.dj_idg)
            inner join ds_time_type tt on (tb.time_type_id = tt.id)
            left join site_dj_transport_time tm on (tm.idg = tb.dj_tt_idg)
       where (dj.dj_doc_up = :m_up) and (dj.is_child != 1) and
             (1 = case
                   when :ip_site__id is null then 1
                   when :ip_site__id = dj.site_id then 1
                   else 0
                 end
             )
       plan join(dj index(site_dj_transport_upsttr),
                 tb index(site_dj_transport_time_tb_djidg),
                 tt index(pk_ds_time_type),
                 tm index(pk_site_dj_transport_time))
       into :site__id,
            :dj__date,:smena_type__descr,
            :dj_smena_num,
            :transport__garajnumber,:markts__descr,
            :transport__type10,
            :dj_tt__acc_kod,:time_type__descr,
            :dj_tt__note,
            :dj_tt__rts_begin,:dj_tt__rts_end,
            :dj_tt__duration
  do suspend;
end



Помогите, пожалуйста, разобраться, что откуда и как берется. И с мелочами: например помимо месяца нужно добавить еще и день выгрузки: как это реализовать?
P.S. Процедура полностью рабочая.
...
Рейтинг: 0 / 0
29.09.2016, 08:44
    #39317457
p2.
p2.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите новичку.
Vis1712_kzЯ программирую примерно 4 года.Вот так сразу после детского сада, не научившись читать?!... документацию по FB.
Здесь, к слову, форму про postgresql, а твой "sql" вовсе не sql.
...
Рейтинг: 0 / 0
29.09.2016, 10:15
    #39317552
Lonepsycho
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите новичку.
Vis1712_kzБд - FireBird.
вы, случаем, ветку форума не перепутали?
...
Рейтинг: 0 / 0
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Помогите новичку. / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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