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

    −120

    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
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    CASE
    	WHEN plandata - begindata = 40000.000000 THEN 4
    	WHEN plandata - begindata = 1090000.000000 THEN 16
    	WHEN plandata - begindata = 2090000.000000 THEN 24
    	WHEN plandata - begindata = 90000.000000 THEN 8
    	WHEN plandata - begindata = 50000.000000 THEN 4
    	WHEN plandata - begindata = 20000.000000 THEN 2
    	WHEN plandata - begindata = 1070000.000000 THEN 14
    	WHEN plandata - begindata = 70000.000000 THEN 6
    	WHEN plandata - begindata = 3090000.000000 THEN 32
    	WHEN plandata - begindata = 4090000.000000 THEN 40
    	WHEN plandata - begindata = 5090000.000000 THEN 48
    	WHEN plandata - begindata = 6090000.000000 THEN 56 
    	WHEN plandata - begindata = 70000.000000 THEN 6
    	WHEN plandata - begindata = 10000.000000 THEN 1
    	WHEN plandata - begindata = 1040000.000000 THEN 12
    	WHEN plandata - begindata = 2040000.000000 THEN 20
    	WHEN plandata - begindata = 3040000.000000 THEN 28
    	WHEN plandata - begindata = 4040000.000000 THEN 36
    	WHEN plandata - begindata = 7040000.000000 THEN 44
    	WHEN plandata - begindata = 8040000.000000 THEN 52
    	WHEN plandata - begindata = 7090000.000000 THEN 48
    	WHEN plandata - begindata = 970000.000000 THEN 10
    	WHEN plandata - begindata = 100000.000000 THEN 9
    	WHEN plandata - begindata = 30000.000000 THEN 3
    END AS TIME

    Вычисляется плановое время выполнения задачи. begindata и plandata поля DATETIME, время начала и завершения операции

    Запостил: dr_Lev, 11 Декабря 2011

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

    • Странно, почему не CASE plandata - begindata IS
      Ответить
    • WHEN plandata - begindata = 70000.000000 THEN 6
      ...
      WHEN plandata - begindata = 70000.000000 THEN 6
      WHEN plandata - begindata = 10000.000000 THEN 1

      Плакал.
      Ответить
      • Не, это не метки в стиле старовасика, я надеюсь.
        Ответить
      • Я плачу от самого кода.
        Где-где, но в SQL-е создать справочную таблицу - абсолютно естественное и очевидное действие.
        Ответить
        • Это слишком сложно для обезьян, которые не умеют думать. Таким дай волю - всё построят на кейсах.
          Ответить
          • CASE-технология же!
            Ответить
            • Скорее, империативный стиль мышления.
              Ответить
              • очень не хватает функциональщины
                Ответить
                • декларативности
                  fixed
                  Ответить
                  • нет-нет, тут именно формула, думаю, подошла бы
                    Ответить
                    • Интересно, что за формула такая.

                      WHEN plandata - begindata = 40000.000000 THEN 4
                      WHEN plandata - begindata = 50000.000000 THEN 4

                      WHEN plandata - begindata = 5090000.000000 THEN 48
                      WHEN plandata - begindata = 7090000.000000 THEN 48




                      Немного блуда рассудка:

                      WHEN plandata - begindata = 2090000.000000 THEN 24
                      округление 24 до десятков - 2

                      WHEN plandata - begindata = 3040000.000000 THEN 28
                      округление 28 до десятков - 3

                      С 14ю и 16ю не канает =\
                      Ответить
      • показать все, что скрытоvanished
        Ответить

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