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

    −861

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    if @new_dg_sor_code is null and @dg_sor_code<>7
    and
    (
    	(
    		(select count(*) from tbl_dogovorlist WITH (nolock) where dl_dgcod=@dg_code and dl_svkey in (1,1158,1166) and dl_control=0)=
    		(select count(*) from tbl_dogovorlist WITH (nolock) where dl_dgcod=@dg_code and dl_svkey in (1,1158,1166))
    	)
    	and (
    		(select count(*) from tbl_dogovorlist WITH (nolock) where dl_dgcod=@dg_code and dl_svkey=3 and dl_control=0)=
    		(select count(*) from tbl_dogovorlist WITH (nolock) where dl_dgcod=@dg_code and dl_svkey=3)
    	)
    	and (
    		(select count(*) from tbl_dogovorlist WITH (nolock) where dl_dgcod=@dg_code and dl_svkey=5 and dl_control=0)=
    		(select count(*) from tbl_dogovorlist WITH (nolock) where dl_dgcod=@dg_code and dl_svkey=5)
    	)
    )

    Видимо зарплата этого парня зависит от количества запросов к tbl_dogovorlist.
    А иначе зачем ему 6 запросов вместо одного?

    Запостил: Anatoly, 01 Апреля 2011

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

    • для того что парень хотел получить, написано нормально (все ли услуги таких-то классов находятся в статусе 'OK').
      А вообще , это туристическая система мастертур, там и не такое есть :) поработав с ним я уже не удивляюсь.
      Ответить
    • Мастер Тур опознан с первого раза)
      Но разве нельзя все сделать одним запросом?
      Мне кажется, что если для нужного dl_svkey существует запись с dl_control is null or dl_control!=0(можно записать еще короче), то проверяемое условие не выполняется.
      Ответить
    • Возможно, это куски бизнес-логики, которые добавлялись по очереди, и, к примеру, некоторые из них периодически нужно отключать?
      Ответить
    • select 1 from tbl_dogovorlist WITH (nolock) 
      where dl_dgcod=@dg_code and dl_svkey in (1,3,5,1158,1166) 
      having max(dl_control)=0 and min(dl_control)=0
      Ответить

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