|
Вариант тестовой задачи при приеме на работу | ☑ | ||
---|---|---|---|---|
0
Азазелло
15.08.12
✎
13:52
|
Есть справочник ГруппыКонтрагентов. У него одна ТЧ "Контрагенты" с реквизитом "Контрагент", тип СправочникСсылка.Контрагенты
Написать запрос, который по переданному массиву Контрагентов вернет либо ссылку на ГруппуКонтрагентов, идентичную по составу, либо ничего не вернет. Подойдет ли такая задача в качестве теста на уровень владения языком запросов? |
|||
1
marty0701
15.08.12
✎
13:57
|
Вполне, только если принимаете не стажера без навыков, он точно ничего не напишет даже близко. для человека хоть 1 запрос(одноэсный конечно же) в жизни написавшего, решить реально и достаточно быстро.
|
|||
2
Азазелло
15.08.12
✎
14:02
|
(1) просто типовая задача реализации ФИФО уже как-то не прикалывает. Хотя, последний из кандидатов даже ее не смог реализовать... По причине того, что не знал, что же такое ФИФО
|
|||
3
Азазелло
15.08.12
✎
14:05
|
+(0) кто думат, что можно обойтись одним полным соединением, группировкой и условиями на агрегаты - жестоко ошибается )
|
|||
4
Sammo
15.08.12
✎
14:06
|
Идентичную - это в точности такую же или допустимо, если массив - подмножество?
|
|||
5
Азазелло
15.08.12
✎
14:14
|
(4) нет, подмножество недопустимо. Если честно, проковырялись с коллегой часа полтора, было 2 реинкарнации... Поэтому и интересует, не слишком ли сурово такую задачу давать на тестовом испытании...
|
|||
6
Fragster
гуру
15.08.12
✎
14:16
|
левое соединение и группировка по ссыке имеющие Минимум() Есть не NULL
|
|||
7
acsent
15.08.12
✎
14:16
|
если 100к+ то нормально
|
|||
8
Fragster
гуру
15.08.12
✎
14:16
|
берите меня на 120тыр + хата
|
|||
9
Fragster
гуру
15.08.12
✎
14:18
|
(3) т.е. (6) - не правильно?
|
|||
10
Азазелло
15.08.12
✎
14:18
|
(8) судя по (6), не тянешь на 120к
|
|||
11
Азазелло
15.08.12
✎
14:18
|
)
|
|||
12
Азазелло
15.08.12
✎
14:19
|
А вообще, бюджет гораздо скромнее.
|
|||
13
Fragster
гуру
15.08.12
✎
14:19
|
(10) ну еще количество различные сравнить
|
|||
14
Азазелло
15.08.12
✎
14:19
|
Мы, наверное, много хотеть...
|
|||
15
Fragster
гуру
15.08.12
✎
14:20
|
(14) да не, задание норм, просто 80% мисты его тоже не выполнит
|
|||
16
Азазелло
15.08.12
✎
14:22
|
(13) а вот это уже ближе )
|
|||
17
Азазелло
15.08.12
✎
14:23
|
В моей реализации не обошлось без cross join, что само по себе не очень хорошо влияет на производительность.
|
|||
18
acsent
15.08.12
✎
14:23
|
(12) на гораздо скромнее бюджет уже хорошо, если могут вывести все нулевые остатки ))
|
|||
19
pumbaEO
15.08.12
✎
14:24
|
(13) не факт, ты же не знаешь различны ли в ТЧ контрагенты...
|
|||
20
Fragster
гуру
15.08.12
✎
14:24
|
ВЫБРАТЬ
1 КАК Ссылка, 1 КАК Контрагент ПОМЕСТИТЬ Спр ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 1, 2 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 1, 3 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 1, 4 ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ 1 КАК Контрагент ПОМЕСТИТЬ Контрагенты ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 2 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 3 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 4 ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ КОЛИЧЕСТВО(РАЗЛИЧНЫЕ Контрагенты.Контрагент) КАК Колво ПОМЕСТИТЬ КолвоКонтрагентов ИЗ Контрагенты КАК Контрагенты ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ Спр.Ссылка, МИНИМУМ(Спр.Контрагент) КАК Контрагент ИЗ Спр КАК Спр ЛЕВОЕ СОЕДИНЕНИЕ Контрагенты КАК Контрагенты ПО Спр.Контрагент = Контрагенты.Контрагент, КолвоКонтрагентов КАК КолвоКонтрагентов СГРУППИРОВАТЬ ПО Спр.Ссылка, КолвоКонтрагентов.Колво ИМЕЮЩИЕ МИНИМУМ(Контрагенты.Контрагент) ЕСТЬ НЕ NULL И КОЛИЧЕСТВО(РАЗЛИЧНЫЕ Контрагенты.Контрагент) = КолвоКонтрагентов.Колво |
|||
21
Fragster
гуру
15.08.12
✎
14:26
|
(17) одну строку можно прилепить и после
|
|||
22
rphosts
15.08.12
✎
14:28
|
(0) писали-бы в объявлении что очень желателен или спец по платформе. На спеца такие задачи решают... а по производительности... тут такая задача, что никак быстрый запрос ни придумать... максимум - умеренно медленный
|
|||
23
Пеппи
15.08.12
✎
14:29
|
Чего то задачу до конца не поняла. А если в массиве контрагентов не все находятся в одной группе и что понимается под группой- папка?
|
|||
24
Азазелло
15.08.12
✎
14:30
|
(22) неужели спец обязателен? я вот такие задачи каждый день решаю... спеца нету, 120к нету )
(20) не работает |
|||
25
Азазелло
15.08.12
✎
14:31
|
(23) Группа - ссылка на справочник с ТЧ, в которой хранится какой-то набор контрагентов
если не все - значит, группа не подходит, и нужно создавать свою группу. фактически, задача на идентичности множеств... |
|||
26
Fragster
гуру
15.08.12
✎
14:32
|
(24) в каком случае не работает?
|
|||
27
rphosts
15.08.12
✎
14:32
|
(24) спец на экзамене роешает несколькот задач типа списания по методике ФИФО, эта немного посложнее.
|
|||
28
acsent
15.08.12
✎
14:33
|
(23) нету в 1с понятия папка
|
|||
29
Азазелло
15.08.12
✎
14:34
|
(26) когда Контрагенты = (1; 2 3) все равно возвращает ссылку на Спр = 1
|
|||
30
Fragster
гуру
15.08.12
✎
14:36
|
а, для чисел минимум - число, для ссылок работает :)
//////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ Спр.Ссылка ИЗ Спр КАК Спр ЛЕВОЕ СОЕДИНЕНИЕ Контрагенты КАК Контрагенты ПО Спр.Контрагент = Контрагенты.Контрагент, КолвоКонтрагентов КАК КолвоКонтрагентов СГРУППИРОВАТЬ ПО Спр.Ссылка, КолвоКонтрагентов.Колво ИМЕЮЩИЕ МИНИМУМ(Выбор Когда Контрагенты.Контрагент Есть NULL Тогда 0 Иначе 1 Конец) <> 0 И КОЛИЧЕСТВО(РАЗЛИЧНЫЕ Контрагенты.Контрагент) = КолвоКонтрагентов.Колво |
|||
31
Пеппи
15.08.12
✎
14:39
|
(28) ну Родитель )
|
|||
32
Лоботряс
15.08.12
✎
14:41
|
1"ВЫБРАТЬ
| Контрагенты.Ссылка |ПОМЕСТИТЬ ВТ_контрагенты |ИЗ | Справочник.Контрагенты КАК Контрагенты |ГДЕ | Контрагенты.Ссылка В(&МассивКонтрагентов) |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | КОЛИЧЕСТВО(РАЗЛИЧНЫЕ Контрагенты.Ссылка) КАК Колво |ПОМЕСТИТЬ ВТ_кол_контрагенты |ИЗ | Справочник.Контрагенты КАК Контрагенты |ГДЕ | Контрагенты.Ссылка В(&МассивКонтрагентов) |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | ГруппыКонтрагентовКонтрагенты.Ссылка, | КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ГруппыКонтрагентовКонтрагенты.Контрагент) КАК Контрагент, | ВТ_кол_контрагенты.Колво |ИЗ | Справочник.ГруппыКонтрагентов.Контрагенты КАК ГруппыКонтрагентовКонтрагенты | ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТ_контрагенты КАК ВТ_контрагенты | ПО ГруппыКонтрагентовКонтрагенты.Контрагент = ВТ_контрагенты.Ссылка | ЛЕВОЕ СОЕДИНЕНИЕ ВТ_кол_контрагенты КАК ВТ_кол_контрагенты | ПО (ИСТИНА) | |СГРУППИРОВАТЬ ПО | ГруппыКонтрагентовКонтрагенты.Ссылка, | ВТ_кол_контрагенты.Колво | |ИМЕЮЩИЕ | КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ГруппыКонтрагентовКонтрагенты.Контрагент) = ВТ_кол_контрагенты.Колво" |
|||
33
Лоботряс
15.08.12
✎
14:43
|
это так на вскидку, а если подумать
|
|||
34
Fragster
гуру
15.08.12
✎
14:43
|
вот еще вариант
//////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ Спр.Ссылка, КОЛИЧЕСТВО(РАЗЛИЧНЫЕ Спр.Контрагент) КАК Колво ПОМЕСТИТЬ СпрСКолвом ИЗ Спр КАК Спр СГРУППИРОВАТЬ ПО Спр.Ссылка ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ СпрСКолвом.Ссылка, СпрСКолвом.Колво, КОЛИЧЕСТВО(РАЗЛИЧНЫЕ Спр.Контрагент) КАК Контрагент, КолвоКонтрагентов.Колво КАК Колво1 ИЗ Спр КАК Спр ВНУТРЕННЕЕ СОЕДИНЕНИЕ СпрСКолвом КАК СпрСКолвом ПО Спр.Ссылка = СпрСКолвом.Ссылка ВНУТРЕННЕЕ СОЕДИНЕНИЕ Контрагенты КАК Контрагенты ПО Спр.Контрагент = Контрагенты.Контрагент, КолвоКонтрагентов КАК КолвоКонтрагентов СГРУППИРОВАТЬ ПО СпрСКолвом.Ссылка, СпрСКолвом.Колво, КолвоКонтрагентов.Колво ИМЕЮЩИЕ КОЛИЧЕСТВО(РАЗЛИЧНЫЕ Спр.Контрагент) = СпрСКолвом.Колво И КОЛИЧЕСТВО(РАЗЛИЧНЫЕ Спр.Контрагент) = КолвоКонтрагентов.Колво |
|||
35
Лоботряс
15.08.12
✎
14:45
|
(0)короче берите меня...
|
|||
36
Лоботряс
15.08.12
✎
14:46
|
Все теперь это в качестве тестовой задачи не прокатит... ее уже решили
|
|||
37
rs_trade
15.08.12
✎
14:46
|
(0) пойдет. не слишком сложная, но и не слишком простая.
|
|||
38
ptiz
15.08.12
✎
14:47
|
(0) На какую з/п ищете человека?
|
|||
39
Азазелло
15.08.12
✎
14:47
|
(35) Далеко ты )
(38) < 100т.р. |
|||
40
Азазелло
15.08.12
✎
14:48
|
(30) очень похоже на правду...
|
|||
41
rbcvg
15.08.12
✎
14:48
|
(39) > 70тр?
|
|||
42
Mort
15.08.12
✎
14:50
|
Тока условие напишите адекватно, потому что в (0) прослеживается необходимость передачи в запрос именно массива параметром. А в этом случае дубли контров в массиве не спалишь.
|
|||
43
Лоботряс
15.08.12
✎
14:51
|
(27) ты все задачи на спеца прорешал? там есть очень разные, например задача по стеллажам. я бы не сказал что она шаблонная
|
|||
44
Азазелло
15.08.12
✎
14:51
|
(42) да, согласен, это необходимо оговаривать отдельно. исходим из того элементы не дублируются.
(41) думаю, да. я не HR, не начальник отдела, не я назначаю зп. просто, ушел коллега, вот, ищем ему замену |
|||
45
Лоботряс
15.08.12
✎
14:51
|
(39)так я ж приеду ;)
|
|||
46
Fragster
гуру
15.08.12
✎
14:52
|
(42) Выбрать Спр.Ссылка Из Спр Где Спр.Ссылка в (&Параметр)
|
|||
47
Kolls
15.08.12
✎
14:53
|
Временные таблицы используем? пакет из 3х запросов и счастье )
|
|||
48
Азазелло
15.08.12
✎
14:53
|
(46) именно, тем более, в запросе врем. таблицу все равно приходится формировать. поэтому дубли исключены.
|
|||
49
Азазелло
15.08.12
✎
14:53
|
(47) именно так я и сделал
|
|||
50
Азазелло
15.08.12
✎
14:55
|
(49)+ вариант (30) кажется мне более изящным. хотя, насчет злоупотребления РАЗЛИЧНЫЕ не уверен
|
|||
51
Mort
15.08.12
✎
14:55
|
(46) А если у меня в массиве 10 одинаковых ссылок?
|
|||
52
Азазелло
15.08.12
✎
14:56
|
(51) вернет одну строку...
|
|||
53
Mort
15.08.12
✎
14:57
|
Вообще можно как доп. задание предложить реализовать:
1. с учетом возможности дублей 2. с учетом порядка элементов. |
|||
54
Азазелло
15.08.12
✎
14:58
|
(53) ну, это уже больше из области теоретических изысканий. а задача (0) у меня возникла на практике.
|
|||
55
Лоботряс
15.08.12
✎
15:03
|
Возьмите в качестве тестовой задачу: на входе есть массив(или таблица) чисел, запросом нужно расположить элементы в порядке возрастания значений и добавить колонку с порядковым номером.
|
|||
56
pumbaEO
15.08.12
✎
15:05
|
(55) лучше тогда остатки на каждый день... хоть будет понятна практическая часть.
|
|||
57
Fragster
гуру
15.08.12
✎
15:06
|
(55) числа любые?
|
|||
58
Лоботряс
15.08.12
✎
15:06
|
(56) там запрос писать долго
|
|||
59
Лоботряс
15.08.12
✎
15:06
|
(57) любые
|
|||
60
Азазелло
15.08.12
✎
15:06
|
(55) с числами, боюсь, не получится...
|
|||
61
Лоботряс
15.08.12
✎
15:08
|
(55)почему? (57)да в принципе любые типы данных поддающиеся сортировке
|
|||
62
Fragster
гуру
15.08.12
✎
15:08
|
(50) различные там и не нужно, если данные нормальные
(59) тогда не взлетит |
|||
63
Азазелло
15.08.12
✎
15:08
|
(61) дубли как учитывать?
|
|||
64
Fragster
гуру
15.08.12
✎
15:08
|
(61) как ты массив любых чисел преобразуешь в таблицу?
|
|||
65
Лоботряс
15.08.12
✎
15:08
|
(61) к(60)
|
|||
66
Азазелло
15.08.12
✎
15:09
|
(64) загрузить в таблицу значений и запихнуть в запрос )))
|
|||
67
Лоботряс
15.08.12
✎
15:09
|
хорошо, не массив, а таблица с одной колонкой
|
|||
68
Fragster
гуру
15.08.12
✎
15:10
|
вот на входе у нас числа (5, -10, 234.23423453454335), выполни свою задачу.
для "положительных целых трехзначных чисел" оно решается элементарно, да |
|||
69
Buster007
15.08.12
✎
15:11
|
в самый раз, если хотите взять более менее знающего человека )
|
|||
70
Fragster
гуру
15.08.12
✎
15:11
|
(67) с повторениями косяк, надо извратится сильно, навскидку даже не скажу как
|
|||
71
Шапокляк
15.08.12
✎
15:17
|
(0) Лень писать, я бы попробовала полным соединением отобрать группы с NULL, остальные годятся.
|
|||
72
Азазелло
15.08.12
✎
15:19
|
(71) если бы все так было просто )
|
|||
73
Лоботряс
15.08.12
✎
15:19
|
(68) честно говоря не вижу разницы, главное что одно число больше другого а значит эту таблицу можно соединить левым соединением сама с собой по принципу таб1.а>таб2.а и посчитать количество "меньших строк" что и будет порядковым номером. В чем подвох?
(67) без повторений:)) |
|||
74
ptiz
15.08.12
✎
15:23
|
ВЫБРАТЬ РАЗЛИЧНЫЕ
ГруппыКонтрагентовКонтрагенты.Ссылка ИЗ Справочник.ГруппыКонтрагентов.Контрагенты КАК ГруппыКонтрагентовКонтрагенты ГДЕ ГруппыКонтрагентовКонтрагенты.Контрагент В(&МассивКонтрагентов) И (НЕ ГруппыКонтрагентовКонтрагенты.Ссылка В (ВЫБРАТЬ ГруппыКонтрагентовКонтрагенты.Ссылка ИЗ Справочник.ГруппыКонтрагентов.Контрагенты КАК ГруппыКонтрагентовКонтрагенты ГДЕ (НЕ ГруппыКонтрагентовКонтрагенты.Контрагент В (&МассивКонтрагентов)))) |
|||
75
ptiz
15.08.12
✎
15:26
|
(во вложенный запрос тоже РАЗЛИЧНЫЕ вставить)
Ну как, берете меня? :) |
|||
76
Alex S D
15.08.12
✎
15:35
|
а мы ищем на 120, даем задачки из спеца..
|
|||
77
Лоботряс
15.08.12
✎
15:40
|
(76) Вы меня нашли:))
|
|||
78
Alex S D
15.08.12
✎
15:42
|
(77) ты у нас работаешь?)
|
|||
79
Лоботряс
15.08.12
✎
15:44
|
(78) ни у вас, ни где бы то еще...
|
|||
80
Fragster
гуру
15.08.12
✎
15:45
|
(76) Миасс-мебель?
|
|||
81
Alex S D
15.08.12
✎
15:46
|
(80) нет
|
|||
82
Азазелло
15.08.12
✎
15:49
|
(75) Не, не берем. Неправильно решил )
|
|||
83
Азазелло
15.08.12
✎
15:50
|
(76) резюме скинуть ? )
|
|||
84
Alex S D
15.08.12
✎
15:55
|
(83) кидай, передам насяльнику)
|
|||
85
ptiz
15.08.12
✎
15:56
|
(82) А что не так?
Пойду тогда к (76), сертификат специалиста по платформе есть, возьмут без конкурса, и денег больше :) |
|||
86
Азазелло
15.08.12
✎
16:00
|
(85) вернет тебе все ссылки на группы, в которых хотя бы один элемент принадлежит переданному массиву.
|
|||
87
ptiz
15.08.12
✎
16:03
|
(86) Нда... И эти люди прнимают задачи.
Проверь на реальных данных - увидишь. |
|||
88
Ksandr
15.08.12
✎
16:04
|
(0) не понимаю в чем сложность посчитать недостающие и излишествующие элементы и выбрать где и тех и тех 0
|
|||
89
Fragster
гуру
15.08.12
✎
16:05
|
(87) а ничего, что элементов справочников групп может быть больше одного?
|
|||
90
ptiz
15.08.12
✎
16:06
|
(89) Я не против.
|
|||
91
shamashs
15.08.12
✎
16:07
|
Если на собеседовании тестовое задание больше 15 минут, уже не хочу в эту контору и не пойду, не уважают меня в этой конторе, вам лень поговорить с человеком или его уровень из беседы не можете получить?
|
|||
92
Fragster
гуру
15.08.12
✎
16:07
|
(90) а ведь и правда :)
|
|||
93
Азазелло
15.08.12
✎
16:08
|
(87) проверил. читай (86)
|
|||
94
mikecool
15.08.12
✎
16:09
|
ощущение, что ТС решил похвастать своими 22 см? или показалось?
|
|||
95
Азазелло
15.08.12
✎
16:09
|
+(93) немного не так. в которых Состав принадлежит подмножеству элементов, переданных в массиве. а нужна идентичность
|
|||
96
Азазелло
15.08.12
✎
16:10
|
(94) нет. хотел бы похвастаться, выложил бы решение и сказал бы: вау, смотрите, как я крут! я не скрываю, что потратил довольно много времени, и, может быть, решил не оптимально.
|
|||
97
mikecool
15.08.12
✎
16:12
|
(96) не хочу, у меня был вариант проверки попадания отгрузки под условия рекламной акции - сравнение по 3м множествам, единственно не было потоварного сравнения количества, только в "массе"
|
|||
98
Азазелло
15.08.12
✎
16:14
|
(98) мне просто было интересно мнение миста-сообщества, насколько данная задача может быть интересна и актуальна при приеме на собеседование. не более того. тем более, как оказалось, не все способны ее сходу решить.
|
|||
99
ptiz
15.08.12
✎
16:15
|
(95) Да, я ступил, признаю :(
|
|||
100
Азазелло
15.08.12
✎
16:17
|
традиционно, сотко
(99) поэтому мне данная задача и понравилась. она не настолько тривиальна, как кажется с первого взгляда |
|||
101
Ksandr
15.08.12
✎
16:18
|
Примерно так я вижу решение:
Выбрать спр.ссылка Поместить ВТ_Множество из Контрагенты ГДЕ Спр.Ссылка В (&Массив) ; ВЫБРАТЬ КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ВТ_Множество.Ссылка) КАК ОбщееКоличество ПОМЕСТИТЬ ВТ_ОбщееКоличество ИЗ ВТ_Множество ; Выбрать Состав.Ссылка, КОЛИЧЕСТВО(РАЗЛИЧНЫЕ Состав.Элемент) КАК Количество ИЗ ГруппыКонтрагентов.Состав КАК Состав ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТ_Множество ПО ВТ_Множество.Ссылка = Состав.Элемент ЛЕВОЕ СОЕДИНЕНИЕ ВТ_ОбщееКоличество ПО Истина СГРУППИРОВАТЬ ПО Состав.Ссылка ИМЕЮЩИЕ КОЛИЧЕСТВО(РАЗЛИЧНЫЕ Состав.Элемент) = ВТ_ОбщееКоличество.ОбщееКоличество не тестил |
|||
102
Азазелло
15.08.12
✎
16:25
|
(101) да, оно и есть.
|
|||
103
Ksandr
15.08.12
✎
16:31
|
(102) Но, на собеседовании я бы потратил больше 14 минут (время между 88 и 101) из-за стресса коим собеседование является.
З.Ы. Давай еще головоломки :) |
|||
104
ssh2006
15.08.12
✎
16:32
|
(101) вроде как если в ТЧ справочника будут все элементы из массива, но кроме них будут и еще элементы то условие на количество за счет внутреннего соединения выполнится, но идентичности не будет
|
|||
105
Лоботряс
15.08.12
✎
16:33
|
(101) один в один мое:))
|
|||
106
Азазелло
15.08.12
✎
16:34
|
(104) вот это отбросит такие ссылки
КОЛИЧЕСТВО(РАЗЛИЧНЫЕ Состав.Элемент) = ВТ_ОбщееКоличество.ОбщееКоличество |
|||
107
ssh2006
15.08.12
✎
16:36
|
(106) там же внутреннее соединение и этих записей с лишними элементами вообще не будет
|
|||
108
Азазелло
15.08.12
✎
16:37
|
(107) ВТ_ОбщееКоличество.ОбщееКоличество посчитано ранее, по полному набору элементов в массиве.
|
|||
109
ssh2006
15.08.12
✎
16:38
|
(108) лишние элементы за счет внутреннего соединения с правильной таблицей не попадут в подсчет КОЛИЧЕСТВО(РАЗЛИЧНЫЕ Состав.Элемент)
|
|||
110
Азазелло
15.08.12
✎
16:39
|
(109) правильно. поэтому условие и не сработает, Группа в запрос не войдет )
|
|||
111
Fragster
гуру
15.08.12
✎
16:39
|
(108) если в группе есть все из массива и еще чуть-чуть, то (101) не сработает
|
|||
112
ptiz
15.08.12
✎
16:40
|
Тогда и моё, без временных таблиц:
ВЫБРАТЬ РАЗЛИЧНЫЕ ГруппыКонтрагентовКонтрагенты.Ссылка ИЗ Справочник.ГруппыКонтрагентов.Контрагенты КАК ГруппыКонтрагентовКонтрагенты ГДЕ (НЕ ГруппыКонтрагентовКонтрагенты.Ссылка В (ВЫБРАТЬ РАЗЛИЧНЫЕ ГруппыКонтрагентовКонтрагенты.Ссылка ИЗ Справочник.ГруппыКонтрагентов.Контрагенты КАК ГруппыКонтрагентовКонтрагенты ГДЕ (НЕ ГруппыКонтрагентовКонтрагенты.Контрагент В (&МассивКонтрагентов)))) СГРУППИРОВАТЬ ПО ГруппыКонтрагентовКонтрагенты.Ссылка ИМЕЮЩИЕ КОЛИЧЕСТВО(*) В (ВЫБРАТЬ КОЛИЧЕСТВО(РАЗЛИЧНЫЕ Контрагенты.Ссылка) ИЗ Справочник.Контрагенты КАК Контрагенты ГДЕ Контрагенты.Ссылка В (&МассивКонтрагентов)) |
|||
113
ssh2006
15.08.12
✎
16:40
|
(111) про это я ему и говорю в (104)
|
|||
114
Ksandr
15.08.12
✎
16:42
|
(107) согласен, нужно так:
Выбрать спр.ссылка Поместить ВТ_Множество из Контрагенты ГДЕ Спр.Ссылка В (&Массив) ; ВЫБРАТЬ КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ВТ_Множество.Ссылка) КАК ОбщееКоличество ПОМЕСТИТЬ ВТ_ОбщееКоличество ИЗ ВТ_Множество ; Выбрать Состав.Ссылка, КОЛИЧЕСТВО(РАЗЛИЧНЫЕ Состав.Элемент) КАК ОбщееКоличество, СУММА(ВЫБОР КОГДА ВТ_Множество.Ссылка IS NULL ТОГДА 1 ИНАЧЕ 0 КОНЕЦ) КАК Избыточные ИЗ ГруппыКонтрагентов.Состав КАК Состав ЛЕВОЕ СОЕДИНЕНИЕ ВТ_Множество ПО ВТ_Множество.Ссылка = Состав.Элемент ЛЕВОЕ СОЕДИНЕНИЕ ВТ_ОбщееКоличество ПО Истина СГРУППИРОВАТЬ ПО Состав.Ссылка ИМЕЮЩИЕ КОЛИЧЕСТВО(РАЗЛИЧНЫЕ Состав.Элемент) = ВТ_ОбщееКоличество.ОбщееКоличество И СУММА(ВЫБОР КОГДА ВТ_Множество.Ссылка IS NULL ТОГДА 1 ИНАЧЕ 0 КОНЕЦ) = 0 |
|||
115
Азазелло
15.08.12
✎
16:42
|
(113), (111), да, сорри. затупил
|
|||
116
Лоботряс
15.08.12
✎
16:43
|
(113) но это уже противоречие условию задачи
|
|||
117
Азазелло
15.08.12
✎
16:44
|
(116) не, норм. нужна идентичность
|
|||
118
Лоботряс
15.08.12
✎
16:44
|
написано "идентичные по составу", не больше, не меньше...
|
|||
119
ptiz
15.08.12
✎
16:47
|
В (112) небольшой косяк может быть, если вдруг одного контрагента ввели несколькими строками в одной группе. Но это не существенно, просто группировку одну добавить.
|
|||
120
Гретта
15.08.12
✎
17:12
|
так кто к кому на собеседование едет?
про вакансию забыли? ))) |
|||
121
Ksandr
15.08.12
✎
17:12
|
(120) Вакансия? не, не слышал
|
|||
122
rphosts
15.08.12
✎
17:15
|
(0)ну так что уже решили?
Есть моменты: как насчёт дублей и насчёт нескольких вхождений одного и того-же контаргегента в "группу"? |
|||
123
rphosts
15.08.12
✎
17:16
|
+(122) и ещё: порядок имеет значенние?
|
|||
124
5 Элемент
15.08.12
✎
17:20
|
ВЫБРАТЬ РАЗЛИЧНЫЕ
|
|||
125
Азазелло
15.08.12
✎
17:26
|
(120) Вакансия на hh должна болтаться, ГК ПиР. Собственно, я же здесь не соискателей ищу )
|
|||
126
Ksandr
15.08.12
✎
17:29
|
(124)
почему не внутреннее вместо: ГДЕ ГруппыКонтрагентовКонтрагенты.Ссылка В (ВЫБРАТЬ Группы.Ссылка ИЗ Группы КАК Группы) |
|||
127
acsent
15.08.12
✎
17:31
|
так почему полноето не подойдет с проверкой на то что нет нуллей?
|
|||
128
Азазелло
15.08.12
✎
17:32
|
(124) o_0
ВЫБРАТЬ РАЗЛИЧНЫЕ КОЛИЧЕСТВО(1) КАК КоличествоКонтрагентов ПОМЕСТИТЬ КоличествоКонтрагентовВСписке ИЗ Справочник.Контрагенты КАК Контрагенты ГДЕ Контрагенты.Ссылка В(&Ссылка) |
|||
129
Азазелло
15.08.12
✎
17:32
|
(127) полное с группировкой по какому полю?
|
|||
130
acsent
15.08.12
✎
17:33
|
ЕСТЬNULL(Спр1.Ссылка, Спр2.Ссылка)
|
|||
131
5 Элемент
15.08.12
✎
17:35
|
(128) это после нескольких правок так получилось :)
Но суть задачи понятна и не сложно найти решение. Такая задача проверяет не знание запросов, а логическое мышление. |
|||
132
acsent
15.08.12
✎
17:36
|
Если подробно
СГРУППИРОВАТЬ ПО ЕСТЬNULL(СпрК.Родитель, СпрГ.Ссылка) ИМЕЮЩИЕ МИНИМУМ(СпрК.Ссылка) НЕ ЕСТЬ NULL И МИНИМУМ(СпрГ.Контрагент) НЕ ЕСТЬ NULL |
|||
133
Азазелло
15.08.12
✎
17:36
|
(13) при полном соединении дергаются составы из разных групп.
|
|||
134
Азазелло
15.08.12
✎
17:36
|
(133) к (130)
|
|||
135
Азазелло
15.08.12
✎
17:37
|
(132) СпрК.Родитель - не,не,не...
|
|||
136
acsent
15.08.12
✎
17:37
|
(133) а при левом не дергаются?
|
|||
137
acsent
15.08.12
✎
17:38
|
(134) если бы ты демобазу сделал, я бы тебе показал
|
|||
138
5 Элемент
15.08.12
✎
17:38
|
Чтобы определить владение языком запросов нужно задавать вопросы по синтаксису и алгоритму работы конструкций.
Например, знает ли кандидат что нужно использовать отборы в вирт таблицах, что желательно использовать все поля индекса и т.п. |
|||
139
acsent
15.08.12
✎
17:39
|
(138) про поля индекса тут большинство отстатыщников не понимает
|
|||
140
Азазелло
15.08.12
✎
17:40
|
(138) +1. Спасибо за идею. Эти вещи воспринимаются уже как само собой разумеющиеся... Ни разу не пришло в голову задать такой вопрос
|
|||
141
acsent
15.08.12
✎
17:43
|
||||
142
acsent
15.08.12
✎
17:44
|
(135) не хотел бы я такого начальника иметь. Ты ему простой способ решения, а он - не,не,не. Как же он умный не догадался
|
|||
143
rphosts
15.08.12
✎
17:45
|
Азазелло, ответь на (122)-(123)
|
|||
144
Азазелло
15.08.12
✎
17:45
|
(142) сорри. просто в (0) Группа <> Родитель )
|
|||
145
Азазелло
15.08.12
✎
17:47
|
(143) да, уже решили. даже несколько вариантов ) дубли не рассматриваются (предполагается, что их нет). порядок значения не имеет.
|
|||
146
acsent
15.08.12
✎
17:50
|
извинясь. меня заглючило и я почему то решал задачу - найти папки контрагентов, для корорый есть группы нашего справочника
|
|||
147
Ksandr
15.08.12
✎
17:50
|
+ к (138)
ну и такие вещи если требования жестче - срез последних на каждую дату в запросе. - нарастающий итог, - остаток на каждую дату периода |
|||
148
rphosts
15.08.12
✎
17:50
|
(145) мне интереснее когда появится время самому решить а потом можно и с вашим сравнить, но нужны точные условия задачи
|
|||
149
acsent
15.08.12
✎
17:52
|
в изначальной задаче: найти группу по массиву вообще никаких соединений не нужно
|
|||
150
Ksandr
15.08.12
✎
17:53
|
(149) Пример в студию
|
|||
151
Азазелло
15.08.12
✎
17:53
|
(149) ага, мне тоже интересно )
|
|||
152
Азазелло
15.08.12
✎
17:55
|
(147) мне еще вот задача нравится: запросом получить сотрудников, у которых ДР будет в ближайшие 14 дней от переданной даты.
|
|||
153
Азазелло
15.08.12
✎
17:55
|
+(152) сама по себе не сложная, но хочется видеть изящное решение. ЗЫ. сам пока не решал )
|
|||
154
acsent
15.08.12
✎
17:56
|
|
|||
155
acsent
15.08.12
✎
17:57
|
последнее условие можно в где перенести
|
|||
156
Ksandr
15.08.12
✎
17:58
|
(152) Рабочих или календарных?
|
|||
157
acsent
15.08.12
✎
17:58
|
|
|||
158
Ksandr
15.08.12
✎
18:00
|
(152) Если календарных то:
ГДЕ Сотрудник.ДР МЕЖДУ &ТекущаяДата И ДОБАВИТЬКДАТЕ(&ТекущаяДата, День, 14) |
|||
159
Fragster
гуру
15.08.12
✎
18:00
|
(152) это легкотня...
|
|||
160
Fragster
гуру
15.08.12
✎
18:01
|
(158) если что, др обычно не в этом году ;)
|
|||
161
acsent
15.08.12
✎
18:01
|
ДР обычно 20 - 50 лет назад от текущей даты
|
|||
162
Fragster
гуру
15.08.12
✎
18:02
|
правда ДатаВремя(Год(&ТекущаяДата),Месяц(ДР), День(Др)) поможет, да
|
|||
163
Ksandr
15.08.12
✎
18:05
|
(160) не учел.
В (162) правильный ответ |
|||
164
Лоботряс
15.08.12
✎
18:07
|
(154) Не оптимальный запрос. Подзапрос в группировке. И почему Минимум а не Сумма?
|
|||
165
acsent
15.08.12
✎
18:10
|
(164) зачем там сумма?
|
|||
166
acsent
15.08.12
✎
18:10
|
а (157) не правильный
|
|||
167
Злопчинский
15.08.12
✎
18:13
|
скажем так: если бы мну на собеседовании в качестве критерия использовались такие/аналогичные задания (не имею ничего против) и если в результате я работаю в этой организации - то на любые вопросы не касающиеся кодинга, знания языка и платформы - вопрошающие посылались бы в далекое путешествие.
|
|||
168
Лоботряс
15.08.12
✎
18:13
|
вот за это
ВЫБОР КОГДА ГруппыКонтрагентовКонтрагенты.Контрагент В (&Массив) ТОГДА 1 ИНАЧЕ 0 КОНЕЦ зачет. Я бы не догадался (164)а посчитать сумму поля1 и сравнить имеющие с количеством контров в массиве и будет самый наверное лучший запрос |
|||
169
Лоботряс
15.08.12
✎
18:14
|
(168) самый простейший
|
|||
170
Азазелло
15.08.12
✎
18:15
|
(167) ну так и ищется человек на сильно нетиповое решение.
|
|||
171
PR
15.08.12
✎
18:20
|
(0) С количеством различных элементов в принципе не жестоко, если ищете не новичка.
Если со сравнением на не NULL без использования количества, то жестко конечно :)) |
|||
172
Лоботряс
15.08.12
✎
18:21
|
А проверить на знание СКД хотите? Могу подбросить пару вариантов
|
|||
173
Азазелло
15.08.12
✎
18:22
|
(172) пока лишь если только себя самого проверить )) с скд начал работать не так давно
|
|||
174
rphosts
15.08.12
✎
18:24
|
(172) давай - будет чем заняться на выхах
|
|||
175
Лоботряс
15.08.12
✎
18:36
|
Ну простейший пример построения иерархии по произвольному полю с помощью СКД который в книжке описан. 146% этого никто не сделает быстро.
Или вывод в одной строке конечный остаток товара и его продажи по периодам(было недавно на mista). |
|||
176
Ksandr
15.08.12
✎
18:44
|
(175) У Гилева и Насипова есть видеоурок на эту тему
|
|||
177
Лоботряс
15.08.12
✎
18:47
|
(176)Ну вот будешь хотя бы знать что соискатель смотрел Гилева и Насипова/читал книжку Хрусталевой.
|
|||
178
rphosts
15.08.12
✎
18:52
|
группировка по периоду?
|
|||
179
Лоботряс
15.08.12
✎
18:54
|
(178)да, но так чтобы конечный остаток был в одной, первой колонке, но не был в колонках с продажами.
|
|||
180
rphosts
16.08.12
✎
03:50
|
(179) могу предложить задачу чуть слжнее: в каждом периоды выводить нескольк показателей (например сумма и кол-во), разность по каждому показателю и % по сравнению с предыдущим периодом, также в последних столбцах разность и % относительно самого первго периода(по каждому из показателей).
|
|||
181
Homer
16.08.12
✎
08:14
|
ВЫБРАТЬ РАЗРЕШЕННЫЕ
СписаниеТоваровТовары.Номенклатура, СписаниеТоваровТовары.Ссылка ПОМЕСТИТЬ мСП ИЗ Документ.СписаниеТоваров.Товары КАК СписаниеТоваровТовары ГДЕ СписаниеТоваровТовары.Ссылка.Дата >= &Дата И СписаниеТоваровТовары.Номенклатура В(&Массив) ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ КОЛИЧЕСТВО(РАЗЛИЧНЫЕ мСП.Номенклатура) КАК Кол ПОМЕСТИТЬ мКолИсходное ИЗ мСП КАК мСП ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ КОЛИЧЕСТВО(РАЗЛИЧНЫЕ мСП.Номенклатура) КАК Кол, мСП.Ссылка ПОМЕСТИТЬ мКол ИЗ мСП КАК мСП СГРУППИРОВАТЬ ПО мСП.Ссылка ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ мКол.Ссылка КАК Ссылка ИЗ мКол КАК мКол ВНУТРЕННЕЕ СОЕДИНЕНИЕ мКолИсходное КАК мКолИсходное ПО мКол.Кол >= мКолИсходное.Кол |
|||
182
Homer
16.08.12
✎
08:27
|
ВЫБРАТЬ
СписаниеТоваровТовары.Номенклатура, СписаниеТоваровТовары.Ссылка ПОМЕСТИТЬ мСП ИЗ Документ.СписаниеТоваров.Товары КАК СписаниеТоваровТовары ГДЕ СписаниеТоваровТовары.Ссылка.Дата >= &Дата И СписаниеТоваровТовары.Номенклатура В(&Массив) ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ РАЗРЕШЕННЫЕ КОЛИЧЕСТВО(РАЗЛИЧНЫЕ Номенклатура.Ссылка) КАК Кол ПОМЕСТИТЬ мКолИсходное ИЗ Справочник.Номенклатура КАК Номенклатура ГДЕ Номенклатура.Ссылка В(&Массив) ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ КОЛИЧЕСТВО(РАЗЛИЧНЫЕ мСП.Номенклатура) КАК Кол, мСП.Ссылка ПОМЕСТИТЬ мКол ИЗ мСП КАК мСП СГРУППИРОВАТЬ ПО мСП.Ссылка ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ мКол.Ссылка КАК Ссылка ИЗ мКол КАК мКол ВНУТРЕННЕЕ СОЕДИНЕНИЕ мКолИсходное КАК мКолИсходное ПО мКол.Кол >= мКолИсходное.Кол |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |