| 
    
            
         
         | 
    
  | 
Задача на собеседовании (создать Запрос) | ☑ | ||
|---|---|---|---|---|
| 
    0
    
        roman383    
     03.12.14 
            ✎
    12:36 
 | 
         
        Приходит как-то мой знакомый на собеседование в одну контору (франч) на вакансию программист 1С. Для того чтобы проверить навыки работы с 1С запросами ему задают задачку: в консоли запросов создать запрос, который получает список целых чисел от 1 до заданного параметра (целое число не меньше 1). Требование к задачи: запрос не обращается к базе данных, имеет всего лишь один параметр (целое число) и запрещено пользоваться ОБЪЕДИНЕНИЯМИ. Дал ему на решение 30 мин. Он эту задачу решить не смог и более того сказал что ее вообще нельзя решить. Проверяющий сказал ему ДО СВИДАНИЯ. Можно ли эту задачу вообще решить?     
         | 
|||
| 
    1
    
        ДенисЧ    
     03.12.14 
            ✎
    12:37 
 | 
         
        решить можно.
 
        Но такого рабодателя надо послать сразу после прочтения задания.  | 
|||
| 
    2
    
        Wobland    
     03.12.14 
            ✎
    12:39 
 | 
         
        какие навыки работы проверить?     
         | 
|||
| 
    3
    
        ДенисЧ    
     03.12.14 
            ✎
    12:40 
 | 
         
        (2) Посылоспособность     
         | 
|||
| 
    4
    
        iamnub    
     03.12.14 
            ✎
    12:40 
 | 
         
        Интересно уточнить - не обращается к базе данных..
 
        У оракла есть FROM DUAL, а у MS SQL? Не говоря уж о 1С-диалекте - как можно запросом что-то получить БЕЗ БД??  | 
|||
| 
    5
    
        Wobland    
     03.12.14 
            ✎
    12:41 
 | 
         
        (4) выбрать "без бд"     
         | 
|||
| 
    6
    
        DCKiller    
     03.12.14 
            ✎
    12:41 
 | 
         
        Гы... А пакетами пользоваться можно?
 
        А на собеседование в галстуке надо приходить?  | 
|||
| 
    7
    
        ДенисЧ    
     03.12.14 
            ✎
    12:42 
 | 
         
        (4) выбрать 2 как колонка
 
        В чём проблема?  | 
|||
| 
    8
    
        roman383    
     03.12.14 
            ✎
    12:42 
 | 
         
        (2) не знаю какие. С начала ему дали задачу с легким запросом, а потом говорит: вот тебе запрос посложнее     
         | 
|||
| 
    9
    
        Ненавижу 1С    
     гуру 
    03.12.14 
            ✎
    12:43 
 | 
         
        (4) раздел FROM в MSSQL и 1С диалектах необязателен     
         | 
|||
| 
    10
    
        Зеленый пень    
     03.12.14 
            ✎
    12:43 
 | 
         
        (0) Сколько лет работаю, ни разу не приходилось такую задачу решать. 
 
        ИХМО, ТС так тешит своё ЧСВ.  | 
|||
| 
    11
    
        Лефмихалыч    
     03.12.14 
            ✎
    12:44 
 | 
         (0) это называется ебанариум  | 
|||
| 
    12
    
        Зеленый пень    
     03.12.14 
            ✎
    12:44 
 | 
         
        (10) + ну не ТС, а проверяющий, конечно     
         | 
|||
| 
    13
    
        DCKiller    
     03.12.14 
            ✎
    12:45 
 | 
         
        (11) Мне одному стало интересно, что там за франч такой?..     
         | 
|||
| 
    14
    
        ramir    
     03.12.14 
            ✎
    12:46 
 | 
         
        Ограничение по (целое число) есть?     
         | 
|||
| 
    15
    
        DCKiller    
     03.12.14 
            ✎
    12:46 
 | 
         
        Я сталкивался на собеседованиях обычно с тупыми эйчарами. С тупыми тестировщиками проверочного ТЗ приходилось сталкиваться всего раза 2 за всю карьеру...     
         | 
|||
| 
    16
    
        Лефмихалыч    
     03.12.14 
            ✎
    12:46 
 | 
         (13) ну, какой-нибудь Волгоградский регианальный клуб ебанариумистов. Да какая разница?..  | 
|||
| 
    17
    
        Ненавижу 1С    
     гуру 
    03.12.14 
            ✎
    12:46 
 | 
         
        (1) научишь?
 
        имхо, решения нет  | 
|||
| 
    18
    
        Ненавижу 1С    
     гуру 
    03.12.14 
            ✎
    12:47 
 | 
         
        (14) ээээ, с ограничением неинтересно     
         | 
|||
| 
    19
    
        Wobland    
     03.12.14 
            ✎
    12:47 
 | 
         
        (17) с верхним потолком можно через запятую     
         | 
|||
| 
    20
    
        Godofsin    
     03.12.14 
            ✎
    12:47 
 | 
         
        Запрос в цикле ))))))     
         | 
|||
| 
    21
    
        DCKiller    
     03.12.14 
            ✎
    12:48 
 | 
         
        (16) А если из мск кто-нибудь?.. Вот пойдешь устраиваться на работу и нарвёшься на такого.     
         | 
|||
| 
    22
    
        pessok    
     03.12.14 
            ✎
    12:49 
 | 
         
        (17) совсем недавно на ИСе было     
         | 
|||
| 
    23
    
        Лефмихалыч    
     03.12.14 
            ✎
    12:49 
 | 
         (21) тоже мне трагедия  | 
|||
| 
    24
    
        Ненавижу 1С    
     гуру 
    03.12.14 
            ✎
    12:50 
 | 
         
        (22) ссылку не дашь? спасибо     
         | 
|||
| 
    25
    
        roman383    
     03.12.14 
            ✎
    12:50 
 | 
         
        (10) встречаются задачи типо такой, например при помощи запроса использую две даты получить все месяцы находящиеся между этими датами     
         | 
|||
| 
    26
    
        DmitriyDI    
     03.12.14 
            ✎
    12:51 
 | 
         
        решение кто-то даст)?     
         | 
|||
| 
    27
    
        roman383    
     03.12.14 
            ✎
    12:51 
 | 
         
        (25) хотя легче в цикле это сделать     
         | 
|||
| 
    28
    
        pessok    
     03.12.14 
            ✎
    12:51 
 | 
         
        (24) а, там с объединить :(
 
        http://infostart.ru/public/251678/  | 
|||
| 
    29
    
        Ненавижу 1С    
     гуру 
    03.12.14 
            ✎
    12:52 
 | 
         
        (28) на важно, там ограничение на вводимое значение     
         | 
|||
| 
    30
    
        pessok    
     03.12.14 
            ✎
    12:53 
 | 
         
        (29) в (0) тоже. целое число больше 1     
         | 
|||
| 
    31
    
        Ненавижу 1С    
     гуру 
    03.12.14 
            ✎
    12:53 
 | 
         
        (27) особенно если даты 01.01.1900 и 01.01.2015     
         | 
|||
| 
    32
    
        Ненавижу 1С    
     гуру 
    03.12.14 
            ✎
    12:54 
 | 
         
        (30) ограничение сверху ))     
         | 
|||
| 
    33
    
        roman383    
     03.12.14 
            ✎
    12:55 
 | 
         
        решение (25) есть в (28)     
         | 
|||
| 
    34
    
        Господин ПЖ    
     03.12.14 
            ✎
    12:55 
 | 
         
        (30) у тебя в коде запроса зашито верхнее ограничение     
         | 
|||
| 
    35
    
        Господин ПЖ    
     03.12.14 
            ✎
    12:56 
 | 
         
        а в (0) этого нет     
         | 
|||
| 
    36
    
        pessok    
     03.12.14 
            ✎
    12:56 
 | 
         
        (32), (34) ага, был невнимателен     
         | 
|||
| 
    37
    
        Господин ПЖ    
     03.12.14 
            ✎
    13:00 
 | 
         
        п.э. либо кандидат недослушал и задача на самом деле (28) или экзаменатор что-то свое имел ввиду.
 
        в общем кандидат/франь ничего не потеряли  | 
|||
| 
    38
    
        dk    
     03.12.14 
            ✎
    13:00 
 | 
         
        полчаса прошло
 
        пока никто не сдал тест может постановка была несколько другая?  | 
|||
| 
    39
    
        Господин ПЖ    
     03.12.14 
            ✎
    13:01 
 | 
         
        >пока никто не сдал тест
 
        в постановке (0) она нерешаема  | 
|||
| 
    40
    
        Тюря    
     03.12.14 
            ✎
    13:02 
 | 
         
        Надо на собеседование ходить со своей головоломкой.
 
        И задающему тоже предложить соревнование у кого мозги острей )))  | 
|||
| 
    41
    
        ramir    
     03.12.14 
            ✎
    13:03 
 | 
         
        (38) При наличии ограничения по заданному числу задача вполне решаемая.     
         | 
|||
| 
    42
    
        roman383    
     03.12.14 
            ✎
    13:04 
 | 
         
        В условии сказано получить список целых чисел, но это не означает что запрос должен возвращать таблицу состоящей из одной колонки и количеством строк равным параметру. Может быть можно попробовать получить таблицу из одной строки и количеством колонок равным этому параметру!!!     
         | 
|||
| 
    43
    
        Лефмихалыч    
     03.12.14 
            ✎
    13:04 
 | 
         (41) "запрещено пользоваться ОБЪЕДИНЕНИЯМИ"  | 
|||
| 
    44
    
        Господин ПЖ    
     03.12.14 
            ✎
    13:04 
 | 
         
        (41) значит франь ничего для себя не потерял
 
        если ограничений не было - кандидат  | 
|||
| 
    45
    
        ramir    
     03.12.14 
            ✎
    13:05 
 | 
         
        (43) Я прочитал условие. Знаю как без объединений решить.     
         | 
|||
| 
    46
    
        Господин ПЖ    
     03.12.14 
            ✎
    13:06 
 | 
         
        (42) гы...     
         | 
|||
| 
    47
    
        dk    
     03.12.14 
            ✎
    13:06 
 | 
         
        типа 
 
        выбрать 1,2,3,4,5,6 ... ?  | 
|||
| 
    48
    
        roman383    
     03.12.14 
            ✎
    13:06 
 | 
         
        (45) пусть ограничение равно 1000000. Только не используя (42) реши     
         | 
|||
| 
    49
    
        Господин ПЖ    
     03.12.14 
            ✎
    13:07 
 | 
         
        (45) ну клади сюда, посмотрим     
         | 
|||
| 
    50
    
        Chum    
     03.12.14 
            ✎
    13:07 
 | 
||||
| 
    51
    
        roman383    
     03.12.14 
            ✎
    13:07 
 | 
         
        (47) ну да, мож франь это имел ввиду     
         | 
|||
| 
    52
    
        dk    
     03.12.14 
            ✎
    13:08 
 | 
         
        (50) запустишь в консоли запросов 1с? ))     
         | 
|||
| 
    53
    
        ramir    
     03.12.14 
            ✎
    13:10 
 | 
         
        Сейчас расскажу на словах, если хотите напишу запрос.
 
        есть выборка1 ВЫБРАТЬ 1 как Поле1 есть выборка2 ВЫБРАТЬ 2 как Поле2 Выбираем полное соединение этих таблиц ПО ЛОЖЬ Получаем таблицу из двух строк. Далее выбираем из это таблицы, таблицу вот такую (с одной колонкой) 1 2 Далее нужное количество раз объединяем ~log(MAX). выбираем сумму по всем таблицам, группируем и сортируем. Не забываем условие, чтобы числа больше заданного не выбирались.  | 
|||
| 
    54
    
        ramir    
     03.12.14 
            ✎
    13:11 
 | 
         
        (53) очепятался, нужное количество раз делаем полное соединение.     
         | 
|||
| 
    55
    
        Господин ПЖ    
     03.12.14 
            ✎
    13:13 
 | 
         
        как определить "нужное количество раз" в запросе?     
         | 
|||
| 
    56
    
        roman383    
     03.12.14 
            ✎
    13:13 
 | 
         
        (53) "Получаем таблицу из двух строк." - это как? Неужели при помощи декатово произведения таблиц из одной строки можно получить таблицу с двумя строками     
         | 
|||
| 
    57
    
        ramir    
     03.12.14 
            ✎
    13:13 
 | 
         
        (53) еще ступил, выбирать нужно 0, 1     
         | 
|||
| 
    58
    
        ramir    
     03.12.14 
            ✎
    13:13 
 | 
         
        (56) Полное соединение по ЛОЖЬ даст нам таблицу из двух строк.     
         | 
|||
| 
    59
    
        Godofsin    
     03.12.14 
            ✎
    13:14 
 | 
         
        (53) Накидай запрос     
         | 
|||
| 
    60
    
        Euguln    
     03.12.14 
            ✎
    13:15 
 | 
         
        (59) + для N = 300     
         | 
|||
| 
    61
    
        capllary    
     03.12.14 
            ✎
    13:17 
 | 
         
        (0) Интересная головоломка.     
         | 
|||
| 
    62
    
        Drac0    
     03.12.14 
            ✎
    13:21 
 | 
        
Но результат можно получить только в обходе :( И то не факт, что получится.  | 
|||
| 
    63
    
        Vladal    
     03.12.14 
            ✎
    13:25 
 | 
         (4) Можно!
  | 
|||
| 
    64
    
        Vladal    
     03.12.14 
            ✎
    13:25 
 | 
         *при том  | 
|||
| 
    65
    
        Drac0    
     03.12.14 
            ✎
    13:26 
 | 
         
        +(62) Работает :)     
         | 
|||
| 
    66
    
        ramir    
     03.12.14 
            ✎
    13:28 
 | 
         
        выбрать естьNull(Поле2, 0) как Поле поместить Темп из (выбрать * из (выбрать 0 как Поле1) как ВЗ1 Полное соединение (выбрать 1 как Поле2) как ВЗ2 ПО ЛОЖЬ) как ВложенныйЗапрос
 
        ; //////////////////////////////////////////////////////////////////////////////// выбрать * из ( ВЫБРАТЬ Темп1.Поле + 2*Темп2.Поле + 2*2*Темп3.Поле + 2*2*2*Темп4.Поле + 2*2*2*2*Темп5.Поле + 2*2*2*2*2*Темп6.Поле + 2*2*2*2*2*2*Темп7.Поле + 2*2*2*2*2*2*2*Темп8.Поле + 2*2*2*2*2*2*2*2*Темп9.Поле как П из Темп как Темп1 полное соединение Темп как Темп2 по истина полное соединение Темп как Темп3 по истина полное соединение Темп как Темп4 по истина полное соединение Темп как Темп5 по истина полное соединение Темп как Темп6 по истина полное соединение Темп как Темп7 по истина полное соединение Темп как Темп8 по истина полное соединение Темп как Темп9 по истина сгруппировать по Темп1.Поле + 2*Темп2.Поле + 2*2*Темп3.Поле + 2*2*2*Темп4.Поле + 2*2*2*2*Темп5.Поле + 2*2*2*2*2*Темп6.Поле + 2*2*2*2*2*2*Темп7.Поле + 2*2*2*2*2*2*2*Темп8.Поле + 2*2*2*2*2*2*2*2*Темп9.Поле) как ВложенныйЗапрос ГДЕ П <= &Параметр И П > 0  | 
|||
| 
    67
    
        ramir    
     03.12.14 
            ✎
    13:29 
 | 
         
        (66) Вот запрос для макс 511     
         | 
|||
| 
    68
    
        mergan    
     03.12.14 
            ✎
    13:30 
 | 
         
        (65)у меня нефига     
         | 
|||
| 
    69
    
        Господин ПЖ    
     03.12.14 
            ✎
    13:30 
 | 
         
        (66) это уже было в (28)     
         | 
|||
| 
    70
    
        pessok    
     03.12.14 
            ✎
    13:31 
 | 
         
        (66) 511     
         | 
|||
| 
    71
    
        ramir    
     03.12.14 
            ✎
    13:32 
 | 
         
        (69) Я ссылку не читал. Сказали, что там ОБЪЕДИНИТЬ используется.     
         | 
|||
| 
    72
    
        Господин ПЖ    
     03.12.14 
            ✎
    13:33 
 | 
         
        (71) ну избавился от от юнион. Но верхний предел у тебя все равно в запросе зашит     
         | 
|||
| 
    73
    
        pessok    
     03.12.14 
            ✎
    13:33 
 | 
         
        (71) ага, там через объединение. осталось теперь для неограниченного сделать     
         | 
|||
| 
    74
    
        Бледно Золотистый    
     03.12.14 
            ✎
    13:33 
 | 
         
        универсального решения нет, если параметр ничем не ограничен     
         | 
|||
| 
    75
    
        ramir    
     03.12.14 
            ✎
    13:34 
 | 
         
        (72) я сразу оговорился, что знаю как решить только с ограничением.     
         | 
|||
| 
    76
    
        roman383    
     03.12.14 
            ✎
    13:34 
 | 
         
        (75) Без ограничения получается никак. Может нужно было на собеседовании решить также но с ограничением, которое не знает проверяющий (например какое-то очень большое число, название которого даже не знаешь)     
         | 
|||
| 
    77
    
        ramir    
     03.12.14 
            ✎
    13:35 
 | 
         
        (76) Любой нормальный проверяющий поймет что это за число.     
         | 
|||
| 
    78
    
        Господин ПЖ    
     03.12.14 
            ✎
    13:35 
 | 
         
        (74) ну значит либо франь либо кандидат идет нафиг. что и произошло.
 
        все довольны  | 
|||
| 
    79
    
        Godofsin    
     03.12.14 
            ✎
    13:35 
 | 
         
        (65) Чтот не взлетело...     
         | 
|||
| 
    80
    
        roman383    
     03.12.14 
            ✎
    13:35 
 | 
         
        В консоли запросов у поля ввода параметра какая разрядность числа?     
         | 
|||
| 
    81
    
        pessok    
     03.12.14 
            ✎
    13:36 
 | 
         
        (77) я вот дальше триллионов уже путаюсь     
         | 
|||
| 
    82
    
        fdgd98    
     03.12.14 
            ✎
    13:36 
 | 
         
        (0) какую зп обещали после решения задачи? какой город?     
         | 
|||
| 
    83
    
        pessok    
     03.12.14 
            ✎
    13:36 
 | 
         
        (78) просто франь знал, что правильный кандидат начнет с нашего любимого вопроса "а нафейхоа?"     
         | 
|||
| 
    84
    
        roman383    
     03.12.14 
            ✎
    13:37 
 | 
         
        (82) зарплата не знаю, город Волгоград     
         | 
|||
| 
    85
    
        Господин ПЖ    
     03.12.14 
            ✎
    13:38 
 | 
         
        (83) в зуповских запросах полно извращений     
         | 
|||
| 
    86
    
        ramir    
     03.12.14 
            ✎
    13:38 
 | 
         
        Это задача на сообразительность, чего зачастую очень не хватает 1Снегам. Сам подобные задаю на собеседование. Знания - дело наживное, главное чтобы не тупил и не ленился.     
         | 
|||
| 
    87
    
        fdgd98    
     03.12.14 
            ✎
    13:38 
 | 
         
        (84) зарплата 10 тыс + 50 % премия наверное.     
         | 
|||
| 
    88
    
        pessok    
     03.12.14 
            ✎
    13:38 
 | 
         
        (85) и каждый раз, когда я на них смотрю - волосы встают дыбом. успокаивает только то, что "возможно я чего-то не знаю"     
         | 
|||
| 
    89
    
        Бледно Золотистый    
     03.12.14 
            ✎
    13:40 
 | 
         
        (88) Нам землянам никогда не понять     
         | 
|||
| 
    90
    
        roman383    
     03.12.14 
            ✎
    13:40 
 | 
         
        (87) ну такую зарплату нужно еще заслужить     
         | 
|||
| 
    91
    
        Godofsin    
     03.12.14 
            ✎
    13:41 
 | 
         
        (89) +100500!     
         | 
|||
| 
    92
    
        roman383    
     03.12.14 
            ✎
    13:42 
 | 
         
        Получается решение как в (66) с ограничением как в (80)     
         | 
|||
| 
    93
    
        Drac0    
     03.12.14 
            ✎
    13:42 
 | 
         
        (79) (68) Обходить надо правильно: пВыборкаГод= Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "Поле", "Все");     
         | 
|||
| 
    94
    
        Drac0    
     03.12.14 
            ✎
    13:44 
 | 
         
        (74) есть в (62) :)     
         | 
|||
| 
    95
    
        Hans    
     03.12.14 
            ✎
    13:45 
 | 
         
        Ну что никто не может решить задачу тупого франча? =)     
         | 
|||
| 
    96
    
        shpioleg    
     03.12.14 
            ✎
    13:46 
 | 
         
        (84) А название франча какое?     
         | 
|||
| 
    97
    
        Господин ПЖ    
     03.12.14 
            ✎
    13:48 
 | 
         
        (96) "Мозго.п и сыновья"     
         | 
|||
| 
    98
    
        azernot    
     03.12.14 
            ✎
    13:49 
 | 
         
        Вот моя нетленка с ограничением в 10 млн...
 
        ВЫБРАТЬ 0 КАК Ноль, 1 КАК Единица, 2 КАК Двойка, 3 КАК Тройка, 4 КАК Четверка, 5 КАК Пятерка, 6 КАК Шестерка, 7 КАК Семерка, 8 КАК Восьмерка, 9 КАК Девятка ПОМЕСТИТЬ ЦифрыВСтолбцах ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ЕСТЬNULL(Цифра0.Ноль, ЕСТЬNULL(Цифра1.Единица, ЕСТЬNULL(Цифра2.Двойка, ЕСТЬNULL(Цифра3.Тройка, ЕСТЬNULL(Цифра4.Четверка, ЕСТЬNULL(Цифра5.Пятерка, ЕСТЬNULL(Цифра6.Шестерка, ЕСТЬNULL(Цифра7.Семерка, ЕСТЬNULL(Цифра8.Восьмерка, ЕСТЬNULL(Цифра9.Девятка, 0)))))))))) КАК Цифра ПОМЕСТИТЬ Цифры ИЗ ЦифрыВСтолбцах КАК Цифра0 ПОЛНОЕ СОЕДИНЕНИЕ ЦифрыВСтолбцах КАК Цифра1 ПО (ЛОЖЬ) ПОЛНОЕ СОЕДИНЕНИЕ ЦифрыВСтолбцах КАК Цифра2 ПО (ЛОЖЬ) ПОЛНОЕ СОЕДИНЕНИЕ ЦифрыВСтолбцах КАК Цифра3 ПО (ЛОЖЬ) ПОЛНОЕ СОЕДИНЕНИЕ ЦифрыВСтолбцах КАК Цифра4 ПО (ЛОЖЬ) ПОЛНОЕ СОЕДИНЕНИЕ ЦифрыВСтолбцах КАК Цифра5 ПО (ЛОЖЬ) ПОЛНОЕ СОЕДИНЕНИЕ ЦифрыВСтолбцах КАК Цифра6 ПО (ЛОЖЬ) ПОЛНОЕ СОЕДИНЕНИЕ ЦифрыВСтолбцах КАК Цифра7 ПО (ЛОЖЬ) ПОЛНОЕ СОЕДИНЕНИЕ ЦифрыВСтолбцах КАК Цифра8 ПО (ЛОЖЬ) ПОЛНОЕ СОЕДИНЕНИЕ ЦифрыВСтолбцах КАК Цифра9 ПО (ЛОЖЬ) ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ Единицы.Цифра + 10 * ЕСТЬNULL(Десятки.Цифра, 0) + 100 * ЕСТЬNULL(Сотни.Цифра, 0) + 1000 * ЕСТЬNULL(Тысячи.Цифра, 0) + 10000 * ЕСТЬNULL(ДесяткиТысяч.Цифра, 0) + 100000 * ЕСТЬNULL(СотниТысяч.Цифра, 0) + 1000000 * ЕСТЬNULL(Миллионы.Цифра, 0) КАК Число ИЗ Цифры КАК Единицы ЛЕВОЕ СОЕДИНЕНИЕ Цифры КАК Десятки ПО (&ВерхнийПредел >= 10) ЛЕВОЕ СОЕДИНЕНИЕ Цифры КАК Сотни ПО (&ВерхнийПредел >= 100) ЛЕВОЕ СОЕДИНЕНИЕ Цифры КАК Тысячи ПО (&ВерхнийПредел >= 1000) ЛЕВОЕ СОЕДИНЕНИЕ Цифры КАК ДесяткиТысяч ПО (&ВерхнийПредел >= 10000) ЛЕВОЕ СОЕДИНЕНИЕ Цифры КАК СотниТысяч ПО (&ВерхнийПредел >= 100000) ЛЕВОЕ СОЕДИНЕНИЕ Цифры КАК Миллионы ПО (&ВерхнийПредел >= 1000000) ГДЕ Единицы.Цифра + 10 * ЕСТЬNULL(Десятки.Цифра, 0) + 100 * ЕСТЬNULL(Сотни.Цифра, 0) + 1000 * ЕСТЬNULL(Тысячи.Цифра, 0) + 10000 * ЕСТЬNULL(ДесяткиТысяч.Цифра, 0) + 100000 * ЕСТЬNULL(СотниТысяч.Цифра, 0) + 1000000 * ЕСТЬNULL(Миллионы.Цифра, 0) <= &ВерхнийПредел И Единицы.Цифра + 10 * ЕСТЬNULL(Десятки.Цифра, 0) + 100 * ЕСТЬNULL(Сотни.Цифра, 0) + 1000 * ЕСТЬNULL(Тысячи.Цифра, 0) + 10000 * ЕСТЬNULL(ДесяткиТысяч.Цифра, 0) + 100000 * ЕСТЬNULL(СотниТысяч.Цифра, 0) + 1000000 * ЕСТЬNULL(Миллионы.Цифра, 0) > 0 УПОРЯДОЧИТЬ ПО Число  | 
|||
| 
    99
    
        Godofsin    
     03.12.14 
            ✎
    13:49 
 | 
         
        (93) а в консоли запросов можно обход задать?     
         | 
|||
| 
    100
    
        Бледно Золотистый    
     03.12.14 
            ✎
    13:49 
 | 
         
        (94) Читерство. Сразу таблицу давай.     
         | 
|||
| 
    101
    
        Drac0    
     03.12.14 
            ✎
    13:53 
 | 
         
        (100) не было такого условия :-) (99) я в клнсоли наптсал, а про оезультат там же ничего не сказано     
         | 
|||
| 
    102
    
        Godofsin    
     03.12.14 
            ✎
    13:58 
 | 
         
        (101) Ну хорошо)))) Зачтено, давай зачетку )))))     
         | 
|||
| 
    103
    
        pessok    
     03.12.14 
            ✎
    14:02 
 | 
         
        (102) есть таки ощущение, что где-то тут подвох. понятное дело, что "экзаменатор" мог тупо завернуть соискателя по личным причинам, а-ля, слишком умный, подсидит еще. но все-же     
         | 
|||
| 
    104
    
        nevopros    
     03.12.14 
            ✎
    14:04 
 | 
         
        Интересные задачи ставят работодатели. Обычно они все такого рода. "Представь что ты баклан и не умеешь решать задачи простым путем. Сделай задачу через *опу, докажи, что не баклан".     
         | 
|||
| 
    105
    
        freetype    
     03.12.14 
            ✎
    14:11 
 | 
         
        (98) зачетно!     
         | 
|||
| 
    106
    
        pessok    
     03.12.14 
            ✎
    14:13 
 | 
         
        запилите кто-то в КЗ сегодняшние варианты, пусть будут     
         | 
|||
| 
    107
    
        ramir    
     03.12.14 
            ✎
    14:27 
 | 
         
        Вот вам без группировки и с оформлением
 
        ВЫБРАТЬ ЕСТЬNULL(ВложенныйЗапрос.Поле2, 0) КАК Поле ПОМЕСТИТЬ Темп ИЗ (ВЫБРАТЬ ВЗ1.Поле1 КАК Поле1, ВЗ2.Поле2 КАК Поле2 ИЗ (ВЫБРАТЬ 0 КАК Поле1) КАК ВЗ1 ПОЛНОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ 1 КАК Поле2) КАК ВЗ2 ПО (ЛОЖЬ)) КАК ВложенныйЗапрос ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ВложенныйЗапрос.П КАК Число ИЗ (ВЫБРАТЬ Темп1.Поле + 2 * Темп2.Поле + 2 * 2 * Темп3.Поле + 2 * 2 * 2 * Темп4.Поле + 2 * 2 * 2 * 2 * Темп5.Поле + 2 * 2 * 2 * 2 * 2 * Темп6.Поле + 2 * 2 * 2 * 2 * 2 * 2 * Темп7.Поле + 2 * 2 * 2 * 2 * 2 * 2 * 2 * Темп8.Поле + 2 * 2 * 2 * 2 * 2 * 2 * 2 * 2 * Темп9.Поле КАК П ИЗ Темп КАК Темп1 ПОЛНОЕ СОЕДИНЕНИЕ Темп КАК Темп2 ПО (ИСТИНА) ПОЛНОЕ СОЕДИНЕНИЕ Темп КАК Темп3 ПО (ИСТИНА) ПОЛНОЕ СОЕДИНЕНИЕ Темп КАК Темп4 ПО (ИСТИНА) ПОЛНОЕ СОЕДИНЕНИЕ Темп КАК Темп5 ПО (ИСТИНА) ПОЛНОЕ СОЕДИНЕНИЕ Темп КАК Темп6 ПО (ИСТИНА) ПОЛНОЕ СОЕДИНЕНИЕ Темп КАК Темп7 ПО (ИСТИНА) ПОЛНОЕ СОЕДИНЕНИЕ Темп КАК Темп8 ПО (ИСТИНА) ПОЛНОЕ СОЕДИНЕНИЕ Темп КАК Темп9 ПО (ИСТИНА)) КАК ВложенныйЗапрос ГДЕ ВложенныйЗапрос.П <= &Параметр И ВложенныйЗапрос.П > 0 УПОРЯДОЧИТЬ ПО Число  | 
|||
| 
    108
    
        Kamas    
     03.12.14 
            ✎
    14:35 
 | 
         
        фу блин решил     
         | 
|||
| 
    109
    
        shpioleg    
     03.12.14 
            ✎
    14:37 
 | 
         
        Тоже "родили" тут сообща.
 
        
     | 
|||
| 
    110
    
        azernot    
     03.12.14 
            ✎
    14:39 
 | 
         
        (109) в (0) "запрещено пользоваться ОБЪЕДИНЕНИЯМИ".     
         | 
|||
| 
    111
    
        Kamas    
     03.12.14 
            ✎
    14:40 
 | 
         
        ВЫБРАТЬ
 
        0 КАК Число ПОМЕСТИТЬ _0 ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ 1 КАК Число ПОМЕСТИТЬ _1 ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ 2 КАК Число ПОМЕСТИТЬ _2 ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ 3 КАК Число ПОМЕСТИТЬ _3 ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ЕСТЬNULL(_0.Число, 0) + ЕСТЬNULL(_1.Число, 0) + ЕСТЬNULL(_2.Число, 0) + ЕСТЬNULL(_3.Число, 0) КАК Поле ПОМЕСТИТЬ числа ИЗ _0 КАК _0 ПОЛНОЕ СОЕДИНЕНИЕ _1 КАК _1 ПО _0.Число = _1.Число ПОЛНОЕ СОЕДИНЕНИЕ _2 КАК _2 ПО _0.Число = _2.Число ПОЛНОЕ СОЕДИНЕНИЕ _3 КАК _3 ПО _0.Число = _3.Число ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ РАЗЛИЧНЫЕ числа1.Поле + 4 * числа2.Поле + 16 * числа3.Поле + 1 КАК Поле1 ИЗ числа КАК числа1, числа КАК числа2, числа КАК числа3 ГДЕ числа1.Поле + 4 * числа2.Поле + 16 * числа3.Поле + 1 < &Параметр УПОРЯДОЧИТЬ ПО Поле1  | 
|||
| 
    112
    
        Господин ПЖ    
     03.12.14 
            ✎
    14:42 
 | 
         
        вы получили ачивку "Годен для Волгограда"     
         | 
|||
| 
    113
    
        pessok    
     03.12.14 
            ✎
    14:42 
 | 
         
        (111) у тебя до 64     
         | 
|||
| 
    114
    
        Kamas    
     03.12.14 
            ✎
    14:42 
 | 
         
        (111) с максимальным можно играться но общий ход действий не изменится     
         | 
|||
| 
    115
    
        pessok    
     03.12.14 
            ✎
    14:43 
 | 
         
        (114) можно играться, когда максимальное заранее известно     
         | 
|||
| 
    116
    
        Господин ПЖ    
     03.12.14 
            ✎
    14:43 
 | 
         
        (114) следующий!     
         | 
|||
| 
    117
    
        Kamas    
     03.12.14 
            ✎
    14:46 
 | 
         
        (114) ну можно степенями 2 последнего догнать до то кого состояния что сервак уйдет в даун только зачем?? хот логики не меняетс     
         | 
|||
| 
    118
    
        fdgd98    
     03.12.14 
            ✎
    14:48 
 | 
         
        Вы нам подходите ! зп 5 тыс рублей!     
         | 
|||
| 
    119
    
        Широкий    
     03.12.14 
            ✎
    14:48 
 | 
         
        (111) Вложенные запросы не катят. Надо именно временку городить?     
         | 
|||
| 
    120
    
        Pasha    
     03.12.14 
            ✎
    14:49 
 | 
         
        (91) Вообще конечно хотелось бы взглянуть на фото автора ЗУПовских запросов... В глаза посмотреть     
         | 
|||
| 
    121
    
        fdgd98    
     03.12.14 
            ✎
    14:49 
 | 
         
        (120) фотки ссожены     
         | 
|||
| 
    122
    
        pessok    
     03.12.14 
            ✎
    14:50 
 | 
         
        (120) в юности мы часто употребляли фразу "да глянь на него, глаз нет". сами знаете о чем речь, не буду популизировать :)     
         | 
|||
| 
    123
    
        Kamas    
     03.12.14 
            ✎
    14:52 
 | 
         
        (119) Да без разницы я просто привык к врт автоматом выходит не думая     
         | 
|||
| 
    124
    
        pessok    
     03.12.14 
            ✎
    14:59 
 | 
         
        (123) а виноват в этом зуп, как пить дать :)     
         | 
|||
| 
    125
    
        pessok    
     03.12.14 
            ✎
    15:00 
 | 
         
        +(124) я тоже насмотревшись этого непотребства стал везде сувать ВТ. вот отучаюсь теперь     
         | 
|||
| 
    126
    
        Ник второй    
     03.12.14 
            ✎
    15:27 
 | 
         
        (125) Зачем отучаться, вт это верный подход.     
         | 
|||
| 
    127
    
        ramir    
     03.12.14 
            ✎
    15:31 
 | 
         
        ВТ оправдано, когда результат используется больше 1 раза. В противном случае особой разницы не вижу.     
         | 
|||
| 
    128
    
        Drac0    
     03.12.14 
            ✎
    15:34 
 | 
         
        (127) Оптимизатор SQL с тобой не согласен.     
         | 
|||
| 
    129
    
        ramir    
     03.12.14 
            ✎
    15:35 
 | 
         
        (128) Да я не против альтернативного мнения. Только на практике, как правило, это мелочь на фоне оптимальности самого запроса)     
         | 
|||
| 
    130
    
        AlexITGround    
     03.12.14 
            ✎
    15:43 
 | 
         
        да я задолбался читать и разбирать эти кучи вложенных запросов, стараюсь юзать ВТ, даже если обращение однократное, хотя некоторые из коллег на мисте против использования ВТ в принципе, пока серьезных аргументов не получил     
         | 
|||
| 
    131
    
        Гёдза    
     03.12.14 
            ✎
    15:46 
 | 
         
        полное соединение по ложь
 
        оказалось равносильно объединить Но кто бы знал такую куету  | 
|||
| 
    132
    
        spero    
     03.12.14 
            ✎
    15:46 
 | 
         
        (130) Тут соображения чисто эстетические. С ВТ декларативный по своей природе язык становится немножечко процедурным. Вот - фи!     
         | 
|||
| 
    133
    
        etc    
     03.12.14 
            ✎
    15:47 
 | 
         
        А я задолбался после таких любителей ВТ наращивать ресурсы DB сервера когда 80% дисковых обращений к tempdb. Конечно, по каждому чиху ВТ, а то где эта таблица создается никого не волнует.     
         | 
|||
| 
    134
    
        igork1966    
     03.12.14 
            ✎
    15:48 
 | 
         
        (129) иногда это зависит от базы например...
 
        если используешь в соединения к регистру сведений... и у тебя Postgress при большом количестве данных ты никуда не уйдешь от ВТ  | 
|||
| 
    135
    
        WebberNSK    
     03.12.14 
            ✎
    15:48 
 | 
         
        (0) можно, гугли на инфостарте пораждающие запросы     
         | 
|||
| 
    136
    
        etc    
     03.12.14 
            ✎
    15:48 
 | 
         
        Вы еще в списки ВТ понапихайте, особенно в процедуру ПриВыводеСтроки (вместо ПриПолученииДанных). Кодеры блин.     
         | 
|||
| 
    137
    
        Kamas    
     03.12.14 
            ✎
    15:50 
 | 
         
        (136) юзайте ssd админы блин     
         | 
|||
| 
    138
    
        Kamas    
     03.12.14 
            ✎
    15:50 
 | 
         
        (137) ))     
         | 
|||
| 
    139
    
        WebberNSK    
     03.12.14 
            ✎
    15:51 
 | 
         
        (0) между прочим подобным способом решается задача транзитивного замыкания, с помощью которой строятся эпические отчеты по юридической-корпоративной структуре в зуп     
         | 
|||
| 
    140
    
        etc    
     03.12.14 
            ✎
    15:51 
 | 
         
        (137) ты еще рамдиск посоветуй. Все вы такие умные.     
         | 
|||
| 
    141
    
        dmpl    
     03.12.14 
            ✎
    15:52 
 | 
         
        (120) Когда разберешься - там все просто, просто букв много.     
         | 
|||
| 
    142
    
        dmpl    
     03.12.14 
            ✎
    15:53 
 | 
         
        (127) Вложенный запрос иногда приводит к непопаданию в индексы. Если же выбрать предварительно в ВТ - практически всегда попадает.     
         | 
|||
| 
    143
    
        DexterMorgan    
     03.12.14 
            ✎
    15:56 
 | 
         
        (142) Вложенный запрос сам по себе не зло, а вот соединение с ним иногда приводит к печальным последствиям
 
        (133) Спасибо, поржал  | 
|||
| 
    144
    
        DexterMorgan    
     03.12.14 
            ✎
    15:58 
 | 
         
        (140) чем плох рамдиск для темпдб? =)     
         | 
|||
| 
    145
    
        Локи-13    
     03.12.14 
            ✎
    16:02 
 | 
         
        (0) жесткий сатанизм... за 8 лет в 1С не сталкивался ни с чем подобным. не считаю нужным держать это в голове. при необходимости есть интернет, и куча сайтов с "Занимательными запросами".
 
        знаете как на школьном конкурсе фонетики в штатах: называют слово и отвечающий задает два вопроса Определение слова Предложение с этим словом Так же и тут. Я бы в ответ попросил описать задачу пользователя, для которой потребуется такое решение. (143) +1  | 
|||
| 
    146
    
        Бледно Золотистый    
     03.12.14 
            ✎
    16:11 
 | 
         
        (143) Ага типа такого:
 
        Microsoft OLE DB Provider for SQL Server: Запрос был отменен, потому что расчетные затраты на его выполнение превышают установленный порог в .... Свяжитесь с системным администратором. Хотя запрос достаточно быстрый и простой как 2 копейки.  | 
|||
| 
    147
    
        Серго62    
     03.12.14 
            ✎
    16:14 
 | 
         
        (0) А целые числа случайно не должны были быть еще и простыми?     
         | 
|||
| 
    148
    
        sapphire    
     03.12.14 
            ✎
    16:21 
 | 
         
        (39) Это еще почему нерешаема?     
         | 
|||
| 
    149
    
        Goggy    
     03.12.14 
            ✎
    16:54 
 | 
         
        Ну что, мегамозги? Выложит-то запрос кто? Или попонтавались и хватит?     
         | 
|||
| 
    150
    
        roman383    
     03.12.14 
            ✎
    16:57 
 | 
         
        (147) не, они просто должны входить во множество чисел Фибоначчи     
         | 
|||
| 
    151
    
        azernot    
     03.12.14 
            ✎
    17:07 
 | 
         
        (149) Все согласились с тем, что простым запросом, без организации специальной выборки, задача нерешаема, если не вводить верхнее ограничение.
 
        Можно конечно ввести ограничение на 1000 триллионов, и заявить, что бОльшие числа в сфере применения 1С не используются. Но с формальной точки зрения - это будет нерешённая задача.  | 
|||
| 
    152
    
        igork1966    
     03.12.14 
            ✎
    17:22 
 | 
         
        (151) +1     
         | 
|||
| 
    153
    
        DmitriyDI    
     03.12.14 
            ✎
    17:33 
 | 
         
        (109) можете объяснить почему при 
 
        выбрать T1.цифры + T2.цифры * 10 + T3.цифры * 100 + T4.цифры * 1000 КАК T из (выбрать * ИЗ ВТ) T1, (выбрать * ИЗ ВТ) T2, (выбрать * ИЗ ВТ) T3, (выбрать * ИЗ ВТ) T4 упорядочить по T получается такой результат? как работает эта часть запроса, что-то никак не пойму ((  | 
|||
| 
    154
    
        DmitriyDI    
     03.12.14 
            ✎
    17:40 
 | 
         
        (153) все возможные комбинации всех сумм цифр этих таблиц?     
         | 
|||
| 
    155
    
        Господин ПЖ    
     03.12.14 
            ✎
    17:42 
 | 
         
        (154) декарт     
         | 
|||
| 
    156
    
        Kamas    
     03.12.14 
            ✎
    17:42 
 | 
         
        (149)чем тебя не устраивает то что было предложено выше Там же все понятно Задаем список чисел в N ричной системе потом Берем этот список столько раз сколько разрядов должно быть у данного числа(Тк. берем таблички без всяких соединений то получаем все возможные комбинации чисел во всех разрядах ) в этой ситеме и переводим его в десятичную     
         | 
|||
| 
    157
    
        Escander    
     03.12.14 
            ✎
    17:42 
 | 
         
        (0) чисто для маркетинга... а что за фра, которому нужны спецы в том. что не имеет прикладного значения?     
         | 
|||
| 
    158
    
        DS    
     03.12.14 
            ✎
    17:47 
 | 
         
        (156) Где тебе не понятно условие задачи?     
         | 
|||
| 
    159
    
        Kamas    
     03.12.14 
            ✎
    17:52 
 | 
         
        (158) что не так вас смущает ограничение в разрядности     
         | 
|||
| 
    160
    
        spero    
     03.12.14 
            ✎
    17:57 
 | 
         
        (154) Если в запросе указать несколько таблиц через запятую, на выходе получишь произведение таблиц.     
         | 
|||
| 
    161
    
        DS    
     03.12.14 
            ✎
    18:05 
 | 
         
        (159) Решений данной задачи в теме еще нет.
 
        А смущает меня то, что на вопрос "сможешь ли согнуть голыми руками пятисантиметровый стальной прут" отвечают "да запросто согну с помощью прутосгибального станка".  | 
|||
| 
    162
    
        Господин ПЖ    
     03.12.14 
            ✎
    18:06 
 | 
         
        правильный ответ 1С-ника на вопрос "за сколько пробежите 100 метровку" - "за 1500 рублей"     
         | 
|||
| 
    163
    
        azernot    
     03.12.14 
            ✎
    18:08 
 | 
         
        (162) В контексте ветки JOB: Давайте все вместе повысим стоимость своих услуг? правильный ответ "за 5000 рублей"     
         | 
|||
| 
    164
    
        Escander    
     03.12.14 
            ✎
    18:14 
 | 
         
        roman383, что за фра-то?     
         | 
|||
| 
    165
    
        rsv    
     03.12.14 
            ✎
    18:21 
 | 
         
        (0) Left Join c  ON   на сравнение . Как то так     
         | 
|||
| 
    166
    
        rsv    
     03.12.14 
            ✎
    18:23 
 | 
         
        т.е. если запретили  объеденения  значит разрешили соединения... надо  завтра  поселектить :)     
         | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |