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

    0

    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
    27. 27
    BEGIN	
      DECLARE uid INT DEFAULT 0;
      DECLARE sid INT DEFAULT 0;
      DECLARE nextid INT DEFAULT 0;
      DECLARE gold FLOAT DEFAULT 3.34;
      DECLARE cgold FLOAT DEFAULT 0;
      DECLARE c CURSOR FOR 
        SELECT `id`, `statid` from users;
      OPEN c;
      size: LOOP
        FETCH c INTO uid, sid;
          if sid = 0 
            THEN 
             SET nextid = (SELECT AUTO_INCREMENT FROM information_schema.tables WHERE table_name = 'goldstat' AND table_schema = DATABASE() LIMIT 0,1); 
             UPDATE `users` SET `statid`= nextid WHERE (`id`= uid);
             INSERT INTO `goldstat` VALUES (nextid, uid, gold, '0', '0', '0', '0', '0', '0', '0', '0');
          ELSE
             SET cgold = (SELECT `overall_b` from goldstat WHERE `owner_id` = uid LIMIT 0,1);
              IF cgold = 0 
                THEN
                 SET cgold = cgold + gold;
                 UPDATE `goldstat` SET `overall_b`= cgold WHERE (`owner_id`= uid);
                END IF; 
           END IF;
       END LOOP size;
      CLOSE c;
    END

    Добавляется нулевая статистика уже заре

    Cynicrus, 26 Декабря 2015

    Комментарии (0)
  2. SQL / Говнокод #19186

    −1

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    const string sql = @"DROP TABLE IF EXISTS inter_table_tmp;
                CREATE TEMPORARY TABLE inter_table_tmp AS
                select * from table1 
                where time >= '{0} 00:00:00' and timetime<= '{1} 23:59:59'
                and status=1 and some_id in (225,244);
                select*from inter_table_tmp;
                drop table inter_table_tmp;";

    Комментарий разработчика на вопрос "На.уя??":
    "Да от суммы исчислимых резулт не изменится)"

    kargon, 15 Декабря 2015

    Комментарии (0)
  3. SQL / Говнокод #19183

    +3

    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
    insert into @Res
    select
    'ИК/Уход за волосами' as name,
    (select COUNT(ID) from kb.SMS_SEND_LOG where DateTimeRequest between @DStart and @DEnd and MsgID = 50) as value
    
    insert into @Res
    select
    'ИК/Уход за лицом' as name,
    (select COUNT(ID) from kb.SMS_SEND_LOG where DateTimeRequest between @DStart and @DEnd and MsgID = 51) as value
    
    insert into @Res
    select
    'ИК/Уход за руками-ногами' as name,
    (select COUNT(ID) from kb.SMS_SEND_LOG where DateTimeRequest between @DStart and @DEnd and MsgID = 52) as value
    
    insert into @Res
    select
    'ИК/Уход за телом' as name,
    (select COUNT(ID) from kb.SMS_SEND_LOG where DateTimeRequest between @DStart and @DEnd and MsgID = 53) as value
    
    insert into @Res
    select
    'ИК/Врачебная косметология' as name,
    (select COUNT(ID) from kb.SMS_SEND_LOG where DateTimeRequest between @DStart and @DEnd and MsgID = 54) as value

    Наш ИТ директора нанял толкового парня.
    И так MsgID = 1..56
    226 строк кода.

    joker63, 15 Декабря 2015

    Комментарии (2)
  4. SQL / Говнокод #19091

    0

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    DECLARE @start TIME(0) = '12:00 AM', 
    			@end   TIME(0) =  '11:59 PM';
     SELECT TOP (DATEDIFF(HOUR, @start, @end) + 1) 
    					  rn = ROW_NUMBER() OVER (ORDER BY [object_id]) 
    					  FROM sys.all_columns ORDER BY [object_id]

    а задача была поставлена просто...

    Hill, 26 Ноября 2015

    Комментарии (3)
  5. SQL / Говнокод #19053

    +3

    1. 1
    2. 2
    3. 3
    select ...
     NVL(DSAND || ', ', '')
    from ...

    сидел и дооолго смотрел, а вдруг сбудется?

    OAS_GUEST, 20 Ноября 2015

    Комментарии (14)
  6. SQL / Говнокод #19044

    0

    1. 1
    2. 2
    3. 3
    SELECT ...
    FROM...
    WHERE DATA_EM1 > TO_DATE(TO_CHAR(P_DATA_EM1, 'yyyymmdd') || '000000', 'yyyymmddhh24miss')

    -TRUNC(P_DATA_EM1).... не?
    -А шо так можна?

    OAS_GUEST, 18 Ноября 2015

    Комментарии (16)
  7. SQL / Говнокод #19041

    +4

    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
    BEGIN
    	SELECT count(DISTINCT CLCNC)
    	INTO P_CLI
    	FROM P040
    	WHERE NRTM = P_NRTM0 AND ESCN= P_ESCN;	
    EXCEPTION
    				WHEN NO_DATA_FOUND
    				THEN
    					P_CLI := 0;
    				WHEN TOO_MANY_ROWS
    				THEN
    					P_CLI := 0;
    END;

    — Держите.
    — Зачем?
    — Ну, как говорится, на всякий пожарный случай.
    — С войны не держал боевого оружия.
    — Ну, это не боевое, а скорее психологическое. При случае можно пугнуть, подать сигнал. Заряжен холостыми.
    — Дайте один боевой!
    — Зачем?
    — На всякий пожарный.

    OAS_GUEST, 18 Ноября 2015

    Комментарии (6)
  8. SQL / Говнокод #18993

    +7

    1. 1
    SELECT ROWNUM INTO cnt FROM t00 WHERE  ROWNUM IN (SELECT ROWNUM FROM p00 WHERE ROWNUM = 1);

    нездоровая любовь к ROWNUM

    OAS_GUEST, 09 Ноября 2015

    Комментарии (1)
  9. SQL / Говнокод #18992

    −1

    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
    27. 27
    28. 28
    PROCEDURE ...
    ...
    IS
    ....
        CURSOR c3 (numero NUMBER) IS
                    SELECT count(DISTINCT prsv) cont
                    FROM sr200 WHERE  NR = NUMERO;
        rec3 c3%ROWTYPE;
    ...
    BEGIN
      .....
        OPEN c3(PROC);
            LOOP FETCH c3 INTO rec3;
        EXIT WHEN c3%NOTFOUND;
        END LOOP;
        CLOSE c3;
    
        CONT := nvl(rec3.cont, 0);
    
       FOR I IN 1 .. CONT
            LOOP CAB := CAB || chr(9);
        IF i = CONT
        THEN
            EXIT;
        END IF;
        END LOOP;
    ....
    END;

    нунахера?? )

    OAS_GUEST, 09 Ноября 2015

    Комментарии (3)
  10. SQL / Говнокод #18919

    +1

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    select 
      bla bla bla
    into 
      dummy_id
    from 
      dummy
    where bla bla bla and
      nvl(sysdate, p_valid_till) between valid_from and
      nvl(valid_till, sysdate);

    NDR, 27 Октября 2015

    Комментарии (2)