egorius: (Default)
[personal profile] egorius

Казалось бы, программисты должны довольно трепетно относиться к типографике, потому что плохо отформатированную программу с кривыми отступами и заглавно-прописными буквами вразнобой совершенно невозможно читать. А вот не тут-то было.

Периодически встречаются такие вот пёрлы:

  select distinct first_value(p1.calendar_period_close_date) over (order by akh1.last_update_date)
     from fa_asset_keywords ak1
     , xx_cfa010_asset_key_history akh1
     , fa_deprn_periods p1
 WHERE 1=1
         and akh1.asset_id = akh.asset_id
         and p1.book_type_code = p_book_type_code
     and akh1.last_update_date>akh.last_update_date
     AND akh1.asset_key_ccid = ak1.code_combination_id
         and akh1.last_update_date between p1.calendar_period_open_date and p1.calendar_period_close_date
         and akh1.last_update_date <= d_end
         and ak1.segment3 = 15

Первое, что я делаю — привожу всё в пристойный вид, причём ручками, без всяких форматтеров:

select distinct first_value(p1.calendar_period_close_date) over (order by akh1.last_update_date)
  from fa_asset_keywords ak1
     , xx_cfa010_asset_key_history akh1
     , fa_deprn_periods p1
 where 1 = 1
   and akh1.asset_id = akh.asset_id
   and p1.book_type_code = p_book_type_code
   and akh1.last_update_date > akh.last_update_date
   and akh1.asset_key_ccid = ak1.code_combination_id
   and akh1.last_update_date between p1.calendar_period_open_date and p1.calendar_period_close_date
   and akh1.last_update_date <= d_end
   and ak1.segment3 = 15

И только потом! Только потом переписываю всё заново.

Date: 2009-07-27 10:07 am (UTC)
From: [identity profile] egorius.livejournal.com
Критикуя — предлагай!
Имхо для читаемости здесь надо изменить порядок условий, но это все-таки уже не типографика.

P.S. Кстати, с праздничком™ тебя!

Date: 2009-07-27 04:25 pm (UTC)
From: [identity profile] hardsign.livejournal.com
select distinct 
  first_value(p1.calendar_period_close_date) over (order by akh1.last_update_date)
from 
  fa_asset_keywords ak1,
  xx_cfa010_asset_key_history akh1,
  fa_deprn_periods p1
where 1 = 1
  and akh1.asset_id = akh.asset_id
  and p1.book_type_code = p_book_type_code
  and akh1.last_update_date > akh.last_update_date
  and akh1.asset_key_ccid = ak1.code_combination_id
  and akh1.last_update_date between 
   p1.calendar_period_open_date and p1.calendar_period_close_date
  and akh1.last_update_date <= d_end
  and ak1.segment3 = 15


Как-то вот такъ примерно :)

P.S. Спасибо :)

Date: 2009-07-27 06:30 pm (UTC)
From: [identity profile] egorius.livejournal.com

Ну да, можно еще полчасика поспорить, как лучше, так:

  and akh1.last_update_date between
 p1.calendar_period_open_date and p1.calendar_period_close_date

или так:

  and akh1.last_update_date between p1.calendar_period_open_date
                                and p1.calendar_period_close_date

но факт остается фактом: наличие последовательно проводимой в жизнь типографической системы упрощает восприятие :-Ъ

Profile

egorius: (Default)
egorius

September 2025

M T W T F S S
1234567
891011121314
15161718192021
22232425262728
2930     

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Mar. 15th, 2026 01:30 pm
Powered by Dreamwidth Studios