SQL / Говнокод #26417 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  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
  29. 29
  30. 30
  31. 31
  32. 32
  33. 33
  34. 34
  35. 35
  36. 36
  37. 37
  38. 38
  39. 39
  40. 40
  41. 41
  42. 42
  43. 43
  44. 44
  45. 45
  46. 46
  47. 47
  48. 48
  49. 49
  50. 50
  51. 51
  52. 52
  53. 53
  54. 54
  55. 55
  56. 56
  57. 57
  58. 58
  59. 59
  60. 60
  61. 61
  62. 62
  63. 63
SET @from = 11836;
SET @to = 11840;

INSERT INTO `sprinter_catalog_tree` (
    `sprinter_catalog_tree`.`level`,
    `sprinter_catalog_tree`.`position`,
    `sprinter_catalog_tree`.`parent_id`,
    `sprinter_catalog_tree`.`catalog`,
    `sprinter_catalog_tree`.`info_id`,
--  ...
)
SELECT
    `sprinter_catalog_tree`.`level`,
    `sprinter_catalog_tree`.`position`,
    @to,
    `sprinter_catalog_tree`.`catalog`,
    `sprinter_catalog_tree`.`info_id`,
    `sprinter_catalog_tree`.`format_id`,
    `sprinter_catalog_tree`.`linked_id`,
    `sprinter_catalog_tree`.`linked_shablon_id`,
--  ...
FROM `sprinter_catalog_tree` where parent_id = @from order by id;

INSERT INTO `sprinter_catalog_tree` (
    `sprinter_catalog_tree`.`level`,
    `sprinter_catalog_tree`.`position`,
    `sprinter_catalog_tree`.`parent_id`,
    `sprinter_catalog_tree`.`catalog`,
    `sprinter_catalog_tree`.`info_id`,
--  ...
)
SELECT
    a.`level`,
    a.`position`,
    (SELECT id from sprinter_catalog_tree as b where b.parent_id = @to and b.name like (SELECT name from sprinter_catalog_tree where id = a.parent_id)),
    a.`catalog`,
    a.`info_id`,
    a.`format_id`,
    a.`linked_id`,
    a.`linked_shablon_id`,
--  ...
FROM `sprinter_catalog_tree` as a where parent_id in (SELECT id FROM sprinter_catalog_tree where parent_id = @from) order by id;

INSERT INTO `sprinter_catalog_info`
(`name`,
`eng_name`,
`text`,
--  ..
)
SELECT
    `sprinter_catalog_info`.`name`,
    `sprinter_catalog_info`.`eng_name`,
    `sprinter_catalog_info`.`text`,
    `sprinter_catalog_info`.`short_text`,
--  ...
FROM `sprinter_catalog_info` where id in (SELECT info_id from `sprinter_catalog_tree` where parent_id = @from or parent_id in (SELECT id from `sprinter_catalog_tree` where parent_id = @from));

CREATE temporary table if not exists ids
SELECT id from `sprinter_catalog_tree` where parent_id = @to or parent_id in (SELECT id from `sprinter_catalog_tree` where parent_id = @to);

UPDATE sprinter_catalog_tree as a SET info_id = (SELECT id from sprinter_catalog_info as b where a.name like b.name order by id desc limit 1) where a.id in (SELECT id from ids);

DROP table ids;

Высрал вот такое говно в качестве write-n-throw скрипта.

Дано: есть элементы дерева, хранящиеся в таблице sprinter_catalog_tree, связаны друг с другом через parent_id. Каждому из них соответствует указанный в info_id элемент таблицы sprinter_catalog_info.

Задача: скопировать все вложенные в раздел @from каталога элементы и его подразделы (вложенность не более 1 уровня) в раздел @to, так чтобы у них были новые id, и также скопировать соответствующие им sprinter_catalog_info. Скопированные sprinter_catalog_tree должны указывать на корректные sprinter_catalog_info, id которых заранее не известны.

Вот такое говно получилось, расскажите как надо было?

vistefan vistefan, (Updated )

Комментарии (192, +192)

SQL / Говнокод #26334 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  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
  29. 29
  30. 30
  31. 31
  32. 32
  33. 33
  34. 34
  35. 35
  36. 36
  37. 37
  38. 38
  39. 39
  40. 40
  41. 41
  42. 42
SELECT SQL_NO_CACHE IT.itemCode,
                                SUBSTRING_INDEX(GROUP_CONCAT(IT.ean),",", 1) as ean,
                                SUBSTRING_INDEX(GROUP_CONCAT(IT.artCode),",", 1) as artCode,
                                SUBSTRING_INDEX(GROUP_CONCAT(IT.description),",", 1) as description,
                                SUBSTRING_INDEX(GROUP_CONCAT(IT.siteName),",", 1) as siteName,
                                SUBSTRING_INDEX(GROUP_CONCAT(IT.familyName),",", 1) as familyName,
                                SUBSTRING_INDEX(GROUP_CONCAT(IT.familyCode),",", 1) as familyCode,
                                SUBSTRING_INDEX(GROUP_CONCAT(IT.SSfamilyCode),",", 1) as SSfamilyCode,
                                SUBSTRING_INDEX(GROUP_CONCAT(IT.SSfamilyName),",", 1) as SSfamilyName,
                                SUBSTRING_INDEX(GROUP_CONCAT(IT.sectorCode),",", 1) as sectorCode,
                                SUBSTRING_INDEX(GROUP_CONCAT(IT.sectorName),",", 1) as sectorName,
                                SUBSTRING_INDEX(GROUP_CONCAT(IT.radiusCode),",", 1) as radiusCode,
                                SUBSTRING_INDEX(GROUP_CONCAT(IT.radiusName),",", 1) as radiusName,
                                FI.areaName,
                                FI.areaCode,
                                ROUND(SUM(IT.price), 2) as price,
                                SUM(IT.quantity) as theoreticalQty,
                                IFNULL(FI.countedQty, 0) as countedQty,
                                ROUND(SUM(IT.quantity) * ROUND(SUM(IT.price), 2), 2) as theoreticalQtyValue,
                                ROUND(IFNULL(FI.countedQty, 0) * ROUND(SUM(IT.price), 2), 2) as countedQtyValue,
                                IFNULL(FI.countedQty, 0) - SUM(IT.quantity) as stockGapQty,
                                ROUND((IFNULL(FI.countedQty, 0) - SUM(IT.quantity)) * SUM(IT.price), 2) as stockGapValue,
                                DATE_FORMAT(ST.lastImport, "%d-%m-%Y %H:%i:%s") as dateOfLastImport,
                                DATE_FORMAT(NOW(), "%d-%m-%Y %H:%i:%s") as dateOfExport
                        FROM Items as IT
                        LEFT JOIN ( 
                            SELECT MIN(FI.ean) as ean, SUM(FI.quantity) as countedQty, IT.itemCode,
                            GROUP_CONCAT(DISTINCT AR.name) as areaName,
                            GROUP_CONCAT(DISTINCT AR.code) as areaCode
                            FROM FoundItems as FI
                            INNER JOIN Items as IT ON FI.ean = IT.ean
                            LEFT JOIN Areas as AR ON AR.id = FI.areaId
                            
                            INNER JOIN Stores as ST ON ST.id = IT.storeId
                            
                            WHERE eventId = ${args.eventId}
                            AND IT.storeId = (SELECT storeId FROM Events WHERE id = ${args.eventId})
                            GROUP BY IT.itemCode
                        ) as FI ON IT.itemCode = FI.itemCode
                        INNER JOIN Stores as ST ON ST.id = IT.storeId
                        WHERE IT.storeId = (SELECT storeId FROM Events WHERE id = ${args.eventId})
                        GROUP BY IT.itemCode, FI.areaName, FI.areaCode, FI.countedQty, dateOfLastImport

а що ця конструкція вміє, а ета що, про та ще й ето потрібно впихнути сюди

silverreve23 silverreve23, (Updated )

Комментарии (6, +6)

SQL / Говнокод #26256 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  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
  29. 29
  30. 30
  31. 31
  32. 32
  33. 33
  34. 34
  35. 35
  36. 36
  37. 37
  38. 38
  39. 39
  40. 40
  41. 41
  42. 42
  43. 43
  44. 44
  45. 45
  46. 46
  47. 47
  48. 48
  49. 49
  50. 50
  51. 51
  52. 52
  53. 53
  54. 54
  55. 55
  56. 56
  57. 57
  58. 58
  59. 59
  60. 60
  61. 61
  62. 62
  63. 63
  64. 64
  65. 65
  66. 66
  67. 67
  68. 68
  69. 69
  70. 70
  71. 71
  72. 72
  73. 73
  74. 74
  75. 75
  76. 76
  77. 77
  78. 78
  79. 79
  80. 80
  81. 81
  82. 82
  83. 83
  84. 84
  85. 85
  86. 86
  87. 87
  88. 88
  89. 89
  90. 90
  91. 91
  92. 92
  93. 93
  94. 94
  95. 95
  96. 96
  97. 97
  98. 98
  99. 99
СТРАЙКЕР СОСИ МОЙ ХУЙ
СТРАЙКЕР СОСИ МОЙ ХУЙ
СТРАЙКЕР СОСИ МОЙ ХУЙ
СТРАЙКЕР СОСИ МОЙ ХУЙ
СТРАЙКЕР СОСИ МОЙ ХУЙ
СТРАЙКЕР СОСИ МОЙ ХУЙ
СТРАЙКЕР СОСИ МОЙ ХУЙ
СТРАЙКЕР СОСИ МОЙ ХУЙ
СТРАЙКЕР СОСИ МОЙ ХУЙ
СТРАЙКЕР СОСИ МОЙ ХУЙ
СТРАЙКЕР СОСИ МОЙ ХУЙ
СТРАЙКЕР СОСИ МОЙ ХУЙ
СТРАЙКЕР СОСИ МОЙ ХУЙ
СТРАЙКЕР СОСИ МОЙ ХУЙ
СТРАЙКЕР СОСИ МОЙ ХУЙ
СТРАЙКЕР СОСИ МОЙ ХУЙ
СТРАЙКЕР СОСИ МОЙ ХУЙ
СТРАЙКЕР СОСИ МОЙ ХУЙ
СТРАЙКЕР СОСИ МОЙ ХУЙ
СТРАЙКЕР СОСИ МОЙ ХУЙ
СТРАЙКЕР СОСИ МОЙ ХУЙ
СТРАЙКЕР СОСИ МОЙ ХУЙ
СТРАЙКЕР СОСИ МОЙ ХУЙ
СТРАЙКЕР СОСИ МОЙ ХУЙ
СТРАЙКЕР СОСИ МОЙ ХУЙ
СТРАЙКЕР СОСИ МОЙ ХУЙ
СТРАЙКЕР СОСИ МОЙ ХУЙ
СТРАЙКЕР СОСИ МОЙ ХУЙ
СТРАЙКЕР СОСИ МОЙ ХУЙ
СТРАЙКЕР СОСИ МОЙ ХУЙ
СТРАЙКЕР СОСИ МОЙ ХУЙ
СТРАЙКЕР СОСИ МОЙ ХУЙ
СТРАЙКЕР СОСИ МОЙ ХУЙ
СТРАЙКЕР СОСИ МОЙ ХУЙ
СТРАЙКЕР СОСИ МОЙ ХУЙ
СТРАЙКЕР СОСИ МОЙ ХУЙ
СТРАЙКЕР СОСИ МОЙ ХУЙ
СТРАЙКЕР СОСИ МОЙ ХУЙ
СТРАЙКЕР СОСИ МОЙ ХУЙ
СТРАЙКЕР СОСИ МОЙ ХУЙ
СТРАЙКЕР СОСИ МОЙ ХУЙ
СТРАЙКЕР СОСИ МОЙ ХУЙ
СТРАЙКЕР СОСИ МОЙ ХУЙ
СТРАЙКЕР СОСИ МОЙ ХУЙ
СТРАЙКЕР СОСИ МОЙ ХУЙ
СТРАЙКЕР СОСИ МОЙ ХУЙ
СТРАЙКЕР СОСИ МОЙ ХУЙ
СТРАЙКЕР СОСИ МОЙ ХУЙ
СТРАЙКЕР СОСИ МОЙ ХУЙ
СТРАЙКЕР СОСИ МОЙ ХУЙ
СТРАЙКЕР СОСИ МОЙ ХУЙ
СТРАЙКЕР СОСИ МОЙ ХУЙ
СТРАЙКЕР СОСИ МОЙ ХУЙ
СТРАЙКЕР СОСИ МОЙ ХУЙ
СТРАЙКЕР СОСИ МОЙ ХУЙ
СТРАЙКЕР СОСИ МОЙ ХУЙ
СТРАЙКЕР СОСИ МОЙ ХУЙ
СТРАЙКЕР СОСИ МОЙ ХУЙ
СТРАЙКЕР СОСИ МОЙ ХУЙ
СТРАЙКЕР СОСИ МОЙ ХУЙ
СТРАЙКЕР СОСИ МОЙ ХУЙ
СТРАЙКЕР СОСИ МОЙ ХУЙ
СТРАЙКЕР СОСИ МОЙ ХУЙ
СТРАЙКЕР СОСИ МОЙ ХУЙ
СТРАЙКЕР СОСИ МОЙ ХУЙ
СТРАЙКЕР СОСИ МОЙ ХУЙ
СТРАЙКЕР СОСИ МОЙ ХУЙ
СТРАЙКЕР СОСИ МОЙ ХУЙ
СТРАЙКЕР СОСИ МОЙ ХУЙ
СТРАЙКЕР СОСИ МОЙ ХУЙ
СТРАЙКЕР СОСИ МОЙ ХУЙ
СТРАЙКЕР СОСИ МОЙ ХУЙ
СТРАЙКЕР СОСИ МОЙ ХУЙ
СТРАЙКЕР СОСИ МОЙ ХУЙ
СТРАЙКЕР СОСИ МОЙ ХУЙ
СТРАЙКЕР СОСИ МОЙ ХУЙ
СТРАЙКЕР СОСИ МОЙ ХУЙ
СТРАЙКЕР СОСИ МОЙ ХУЙ
СТРАЙКЕР СОСИ МОЙ ХУЙ
СТРАЙКЕР СОСИ МОЙ ХУЙ
СТРАЙКЕР СОСИ МОЙ ХУЙ
СТРАЙКЕР СОСИ МОЙ ХУЙ
СТРАЙКЕР СОСИ МОЙ ХУЙ
СТРАЙКЕР СОСИ МОЙ ХУЙ
СТРАЙКЕР СОСИ МОЙ ХУЙ
СТРАЙКЕР СОСИ МОЙ ХУЙ
СТРАЙКЕР СОСИ МОЙ ХУЙ
СТРАЙКЕР СОСИ МОЙ ХУЙ
СТРАЙКЕР СОСИ МОЙ ХУЙ
СТРАЙКЕР СОСИ МОЙ ХУЙ
СТРАЙКЕР СОСИ МОЙ ХУЙ
СТРАЙКЕР СОСИ МОЙ ХУЙ
СТРАЙКЕР СОСИ МОЙ ХУЙ
СТРАЙКЕР СОСИ МОЙ ХУЙ
СТРАЙКЕР СОСИ МОЙ ХУЙ
СТРАЙКЕР СОСИ МОЙ ХУЙ
СТРАЙКЕР СОСИ МОЙ ХУЙ
СТРАЙКЕР СОСИ МОЙ ХУЙ
СТРАЙКЕР СОСИ МОЙ ХУЙ

СТРАЙКЕР СОСИ МОЙ ХУЙ
СТРАЙКЕР СОСИ МОЙ ХУЙ
СТРАЙКЕР СОСИ МОЙ ХУЙ
СТРАЙКЕР СОСИ МОЙ ХУЙ
СТРАЙКЕР СОСИ МОЙ ХУЙ
СТРАЙКЕР СОСИ МОЙ ХУЙ
СТРАЙКЕР СОСИ МОЙ ХУЙ
СТРАЙКЕР СОСИ МОЙ ХУЙ
СТРАЙКЕР СОСИ МОЙ ХУЙ
СТРАЙКЕР СОСИ МОЙ ХУЙ
СТРАЙКЕР СОСИ МОЙ ХУЙ
СТРАЙКЕР СОСИ МОЙ ХУЙ
СТРАЙКЕР СОСИ МОЙ ХУЙ
СТРАЙКЕР СОСИ МОЙ ХУЙ
СТРАЙКЕР СОСИ МОЙ ХУЙ
СТРАЙКЕР СОСИ МОЙ ХУЙ
СТРАЙКЕР СОСИ МОЙ ХУЙ
СТРАЙКЕР СОСИ МОЙ ХУЙ
СТРАЙКЕР СОСИ МОЙ ХУЙ
СТРАЙКЕР СОСИ МОЙ ХУЙ
СТРАЙКЕР СОСИ МОЙ ХУЙ
СТРАЙКЕР СОСИ МОЙ ХУЙ
СТРАЙКЕР СОСИ МОЙ ХУЙ
СТРАЙКЕР СОСИ МОЙ ХУЙ
СТРАЙКЕР СОСИ МОЙ ХУЙ
СТРАЙКЕР СОСИ МОЙ ХУЙ
СТРАЙКЕР СОСИ МОЙ ХУЙ
СТРАЙКЕР СОСИ МОЙ ХУЙ
СТРАЙКЕР СОСИ МОЙ ХУЙ
СТРАЙКЕР СОСИ МОЙ ХУЙ
СТРАЙКЕР СОСИ МОЙ ХУЙ
СТРАЙКЕР СОСИ МОЙ ХУЙ
СТРАЙКЕР СОСИ МОЙ ХУЙ
СТРАЙКЕР СОСИ МОЙ ХУЙ
СТРАЙКЕР СОСИ МОЙ ХУЙ
СТРАЙКЕР СОСИ МОЙ ХУЙ
СТРАЙКЕР СОСИ МОЙ ХУЙ
СТРАЙКЕР СОСИ МОЙ ХУЙ
СТРАЙКЕР СОСИ МОЙ ХУЙ
СТРАЙКЕР СОСИ МОЙ ХУЙ
СТРАЙКЕР СОСИ МОЙ ХУЙ
СТРАЙКЕР СОСИ МОЙ ХУЙ
СТРАЙКЕР СОСИ МОЙ ХУЙ
СТРАЙКЕР СОСИ МОЙ ХУЙ
СТРАЙКЕР СОСИ МОЙ ХУЙ
СТРАЙКЕР СОСИ МОЙ ХУЙ
СТРАЙКЕР СОСИ МОЙ ХУЙ
СТРАЙКЕР СОСИ МОЙ ХУЙ
СТРАЙКЕР СОСИ МОЙ ХУЙ
СТРАЙКЕР СОСИ МОЙ ХУЙ
СТРАЙКЕР СОСИ МОЙ ХУЙ
СТРАЙКЕР СОСИ МОЙ ХУЙ
СТРАЙКЕР СОСИ МОЙ ХУЙ
СТРАЙКЕР СОСИ МОЙ ХУЙ
СТРАЙКЕР СОСИ МОЙ ХУЙ
СТРАЙКЕР СОСИ МОЙ ХУЙ
СТРАЙКЕР СОСИ МОЙ ХУЙ
СТРАЙКЕР СОСИ МОЙ ХУЙ
СТРАЙКЕР СОСИ МОЙ ХУЙ
СТРАЙКЕР СОСИ МОЙ ХУЙ
СТРАЙКЕР СОСИ МОЙ ХУЙ
СТРАЙКЕР СОСИ МОЙ ХУЙ
СТРАЙКЕР СОСИ МОЙ ХУЙ
СТРАЙКЕР СОСИ МОЙ ХУЙ
СТРАЙКЕР СОСИ МОЙ ХУЙ
СТРАЙКЕР СОСИ МОЙ ХУЙ
СТРАЙКЕР СОСИ МОЙ ХУЙ
СТРАЙКЕР СОСИ МОЙ ХУЙ
СТРАЙКЕР СОСИ МОЙ ХУЙ
СТРАЙКЕР СОСИ МОЙ ХУЙ
СТРАЙКЕР СОСИ МОЙ ХУЙ
СТРАЙКЕР СОСИ МОЙ ХУЙ
СТРАЙКЕР СОСИ МОЙ ХУЙ
СТРАЙКЕР СОСИ МОЙ ХУЙ
СТРАЙКЕР СОСИ МОЙ ХУЙ
СТРАЙКЕР СОСИ МОЙ ХУЙ
СТРАЙКЕР СОСИ МОЙ ХУЙ
СТРАЙКЕР СОСИ МОЙ ХУЙ
СТРАЙКЕР СОСИ МОЙ ХУЙ
СТРАЙКЕР СОСИ МОЙ ХУЙ
СТРАЙКЕР СОСИ МОЙ ХУЙ
СТРАЙКЕР СОСИ МОЙ ХУЙ
СТРАЙКЕР СОСИ МОЙ ХУЙ
СТРАЙКЕР СОСИ МОЙ ХУЙ
СТРАЙКЕР СОСИ МОЙ ХУЙ

xyu_100cm xyu_100cm, (Updated )

Комментарии (3, +3)

SQL / Говнокод #25628 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15
SELECT country, QTY, MIN(launched)
FROM (SELECT country, launched, COUNT(name) QTY
 FROM Classes c JOIN 
 Ships s ON c.class = s.class
 GROUP BY country,launched
 HAVING COUNT(name) = (SELECT MAX(qty) 
 FROM (SELECT country,launched,COUNT(name) qty
 FROM Classes c1 JOIN 
 Ships s1 ON c1.class = s1.class
 WHERE country = c.country
 GROUP BY country,launched
 )e
 )
 )T
GROUP BY t.qty, t.country;

-2 sql ex rating
я так понял необходимо ещё как-то добавить проверку на NULL?

5252mmr 5252mmr, (Updated )

Комментарии (6, +6)

SQL / Говнокод #25627 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
select Outcomes.ship,count(*)
from Outcomes
where outcomes.result!='sunk'
group by ship
HAVING count(*)>=2
union
select ships.name,count(*)
from ships
where ships.launched!=NULL
group by name
HAVING count(*)>=2

-9 sql ex...

неверно на тренировочной

коммент :
парсить имя на '%NAME%' ? или как ?

5252mmr 5252mmr, (Updated )

Комментарии (1, +1)

SQL / Говнокод #25626 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
select distinct pass_in_trip.trip_no, (pass_in_trip.trip_no/5+pass_in_trip.trip_no/25+pass_in_trip.trip_no/125+pass_in_trip.trip_no/625+pass_in_trip.trip_no/3125+pass_in_trip.trip_no/15625+pass_in_trip.trip_no/78125)
from pass_in_trip
union
select distinct trip.trip_no, (trip.trip_no/5+trip.trip_no/25+trip.trip_no/125+trip.trip_no/625+trip.trip_no/3125+trip.trip_no/15625+trip.trip_no/78125)
from Trip

-12 рейтинговое sql ex... на тренировочной что-то не так...
наверно что-то связанное с NULL ?
добавить проверку ?

5252mmr 5252mmr, (Updated )

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

SQL / Говнокод #25625 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  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
  29. 29
select model,(CAST(substring(model, 1, 1) as int)+CAST(substring(model, 2, 1) as int)+CAST(substring(model, 3, 1) as int)+CAST(substring(model, 4, 1) as int)) as qty
from product
where  
(substring(model, 1, 1) like '0' or substring(model, 1, 1) like '1' or substring(model, 1, 1) like '2' 
or substring(model, 1, 1) like '3' or substring(model, 1, 1) like '4' or substring(model, 1, 1) like '5' 
or substring(model, 1, 1) like '6' or substring(model, 1, 1) like '7' or substring(model, 1, 1) like '8' 
or substring(model, 1, 1) like '9')
 AND (substring(model, 2, 1) like '0' or substring(model, 2, 1) like '1' or substring(model, 2, 1) like '2' 
 or substring(model, 2, 1) like '3' or substring(model, 2, 1) like '4' or substring(model, 2, 1) like '5' 
 or substring(model, 2, 1) like '6' or substring(model, 2, 1) like '7' or substring(model, 2, 1) like '8' 
 or substring(model, 2, 1) like '9') 
 AND (substring(model, 3, 1) like '0' or substring(model, 3, 1) like '1' or substring(model, 3, 1) like '2' 
or substring(model, 3, 1) like '3' or substring(model, 3, 1) like '4' or substring(model, 3, 1) like '5'
 or substring(model, 3, 1) like '6' or substring(model, 3, 1) like '7' or substring(model, 3, 1) like '8' 
 or substring(model, 3, 1) like '9') 
 AND (substring(model, 4, 1) like '0' or substring(model, 4, 1) like '1' or substring(model, 4, 1) like '2'
 or substring(model, 4, 1) like '3' or substring(model, 4, 1) like '4' or substring(model, 4, 1) like '5' 
 or substring(model, 4, 1) like '6' or substring(model, 4, 1) like '7' or substring(model, 4, 1) like '8' 
 or substring(model, 4, 1) like '9')



select model, 
ASCII(SUBSTRING(model,1,1))+ 
ASCII(SUBSTRING(model,2,1))+ 
ASCII(SUBSTRING(model,3,1))+ 
ASCII(SUBSTRING(model,4,1)) 
-48*4 as qty from Product
тоже не помогло.

sql ex рейтинговое 4. показывает что на тренировочной что-то не правильно.
лайк же вроде проверяет '1' как цифру а не как строку.
любые хинты как тут

5252mmr 5252mmr, (Updated )

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

SQL / Говнокод #25624 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  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
select trip_no,concat(CAST(trip_no &1024 aS bit),CAST(trip_no &512 aS bit),CAST(trip_no &256 aS bit), CAST(trip_no &128 aS bit),CAST(trip_no &64 aS bit),
cast(trip_no & 32 as bit)
 , cast(trip_no & 16 as bit) 
    , cast(trip_no & 8 as bit) 
    , cast(trip_no & 4 as bit) 
    , cast(trip_no & 2 as bit)  
    ,cast(trip_no & 1 as bit)) as trip_no_bit
from pass_in_trip
where trip_no<=2048 and trip_no>=1024

union 

select trip_no,concat(CAST(trip_no &1024 aS bit),CAST(trip_no &512 aS bit),CAST(trip_no &256 aS bit), CAST(trip_no &128 aS bit),CAST(trip_no &64 aS bit),
cast(trip_no & 32 as bit)
 , cast(trip_no & 16 as bit) 
    , cast(trip_no & 8 as bit)
    , cast(trip_no & 4 as bit) 
    , cast(trip_no & 2 as bit)  
    ,cast(trip_no & 1 as bit))  as trip_no_bit
from trip
where trip_no<=2048 and trip_no>=1024
union

В конкате первый аргумент concat(CAST(trip_no &1024 aS bit),
&1024 имеется ввиду

а внизу проверка where trip_no<=2048 and trip_no>=1024 - правильно ли ? или where trip_no<=1024and trip_no>=512 должно быть ?

и есть ли более профитный вариант решения рейтинговой задачи sqlex`a ? а то какой-то говнокод получается около 11к строк а там лимит 8к...
или лучше заменить на %2 и /2)%2 , /2)/2)%2 ????

5252mmr 5252mmr, (Updated )

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