|
Задачка на собеседовании. | ☑ | ||
---|---|---|---|---|
0
Dunstan
22.03.12
✎
12:14
|
Есть две временные таблицы с одинаковой структурой:
1.товар 2.накладная 4.количество Как запросом вытянуть все записи из 2-ой таблице, которых нет в первой. |
|||
1
Darly
22.03.12
✎
12:15
|
НЕ В(...
|
|||
2
Лодырь
22.03.12
✎
12:16
|
Ну чеснэ слово, як диты
|
|||
3
shamannk
22.03.12
✎
12:16
|
Полное соединение где 1табл.Товари и .... =NULL
|
|||
4
guitar_player
22.03.12
✎
12:16
|
нот экзист
|
|||
5
Dunstan
22.03.12
✎
12:18
|
ну а написать можно полный текст?
|
|||
6
shamannk
22.03.12
✎
12:19
|
(5)5000т.р.
|
|||
7
Dunstan
22.03.12
✎
12:20
|
ну и цены...
|
|||
8
Shurjk
22.03.12
✎
12:20
|
(3) В каком случае при полном соединении может быть NULL ?
|
|||
9
Balabass
22.03.12
✎
12:20
|
Малото что 5000 так еще и т.р.
Это получается 5000000 рубелй? |
|||
10
Лодырь
22.03.12
✎
12:21
|
(7) Успокоить совесть дорого стоит.
|
|||
11
Shurjk
22.03.12
✎
12:21
|
(9) На фоне тупости и бездарности - нормлаьные спецы всегда будут дорого стоить:)
|
|||
12
Jofa
22.03.12
✎
12:22
|
(0)Дак а чё тебя не взяли что ли??
|
|||
13
Jofa
22.03.12
✎
12:22
|
(0)Напиши свой вариант запроса?
|
|||
14
Волесвет
22.03.12
✎
12:23
|
меня смущает 1,2,4
а по решению - вытягиваешь из первой, потом тянешь из второй смотря есть ли это в первой |
|||
15
Dunstan
22.03.12
✎
12:24
|
(12) неа.
|
|||
16
Нуф-Нуф
22.03.12
✎
12:28
|
иди устраивайся
ВЫБРАТЬ Таблица1.Накладная, Таблица1.Товар, Таблица1.Количество ПОМЕСТИТЬ Врем1 ИЗ Таблица1 КАК Таблица1 ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ Таблица2.Накладная, Таблица2.Товар, Таблица2.Количество ПОМЕСТИТЬ Врем2 ИЗ Таблица2 КАК Таблица2 ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ Врем1.Накладная, Врем1.Товар, Врем1.Количество ИЗ Врем1 КАК Врем1 ГДЕ (НЕ (Врем1.Накладная, Врем1.Товар, Врем1.Количество) В (ВЫБРАТЬ Врем2.Накладная, Врем2.Товар, Врем2.Количество ИЗ Врем2)) |
|||
17
Мыш
22.03.12
✎
12:28
|
выбрать таблица2.* из таблица2 как таблица2 левое соединение (выбрать * из таблица1) как таблица1 по таблица2.поле=таблица1.поле где таблица1.поле=нулл
|
|||
18
Axel2009
22.03.12
✎
12:30
|
(16) а в какой запрос это выливается на скуль серваке?
|
|||
19
fisher
22.03.12
✎
12:30
|
Ну и тупой вариант из учебников:
ВЫБРАТЬ * ИЗ Т2 ЛЕВОЕ СОЕДИНЕНИЕ Т1 ПО Т2.Товар = Т1.Товар И Т2.Накладная = Т1.Накладная И Т2.Количество = Т1.Количество ГДЕ Т1.Товар ЕСТЬ NULL |
|||
20
Axel2009
22.03.12
✎
12:31
|
(19) самый быстрый. почему тупой?
|
|||
21
Нуф-Нуф
22.03.12
✎
12:32
|
(18) не понял высказывания
|
|||
22
fisher
22.03.12
✎
12:32
|
(20) Ну, не тупой. Классический, скажем так. Во всех учебниках по SQL есть.
|
|||
23
mirosh
22.03.12
✎
12:32
|
(16) а таблицы убивать кто будет?
|
|||
24
Dunstan
22.03.12
✎
12:33
|
Уточню,вытащить надо именно записи
|
|||
25
mirosh
22.03.12
✎
12:33
|
(18) в такой же запрос, т.к. все эти субд поддерживают временные таблицы
|
|||
26
mirosh
22.03.12
✎
12:34
|
(24) а что еще можно вытащить? пиши (19) и (16), только (16) еще надо джоработать:
ВЫБРАТЬ Таблица1.Накладная, Таблица1.Товар, Таблица1.Количество ПОМЕСТИТЬ Врем1 ИЗ Таблица1 КАК Таблица1 ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ Таблица2.Накладная, Таблица2.Товар, Таблица2.Количество ПОМЕСТИТЬ Врем2 ИЗ Таблица2 КАК Таблица2 ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ Врем1.Накладная, Врем1.Товар, Врем1.Количество ИЗ Врем1 КАК Врем1 ГДЕ (НЕ (Врем1.Накладная, Врем1.Товар, Врем1.Количество) В (ВЫБРАТЬ Врем2.Накладная, Врем2.Товар, Врем2.Количество ИЗ Врем2)) ; ////////// УНИЧТОЖИТЬ Врем1; /////////// УНИЧТОЖИТЬ Врем2 |
|||
27
Нуф-Нуф
22.03.12
✎
12:35
|
(23) ну это детали :)
|
|||
28
Нуф-Нуф
22.03.12
✎
12:37
|
главное же принцип
|
|||
29
Dunstan
22.03.12
✎
12:42
|
спс.
Еще вопросик был. В обработке проводятся документы. Как сделать так, чтоб этот процесс ускорился? |
|||
30
Господин ПЖ
22.03.12
✎
12:43
|
звпихнуть в транзакцию например
|
|||
31
Jolly Roger
22.03.12
✎
12:43
|
(26) а чо будет, если не напишешь
УНИЧТОЖИТЬ Врем1; УНИЧТОЖИТЬ Врем2 ? |
|||
32
Господин ПЖ
22.03.12
✎
12:44
|
(31) по идее - ничего...
|
|||
33
Jolly Roger
22.03.12
✎
12:44
|
(29) купить новый сервер...
|
|||
34
Jolly Roger
22.03.12
✎
12:45
|
(32) ну вот мне и интересно зачем это писать...
|
|||
35
lordmb
22.03.12
✎
12:45
|
(28) имхо, это лишнее.
"В пакетном запросе тексты запросов разделяются символом «;». Запросы исполняются последовательно, при этом временные таблицы, которые были созданы во время исполнения какого-либо запроса, будут существовать до окончания исполнения всего пакета запроса или до исполнения в пакете запроса, уничтожающего данную временную таблицу." |
|||
36
Нуф-Нуф
22.03.12
✎
12:46
|
(34) они остаются на сервере в виде таблиц (на время жизни сеанса наверно). если запросы серьезные и база не маленькая, убивание временных таблиц лишним не будет
|
|||
37
ИС-2
naïve
22.03.12
✎
12:47
|
ускорить можно индексированием по номенлатуре
|
|||
38
ИС-2
naïve
22.03.12
✎
12:47
|
странно, что не было вопроса "А на какую сумму з/п эта задача"
|
|||
39
Jolly Roger
22.03.12
✎
12:47
|
(36) наверно... надо точно знать...
|
|||
40
Axel2009
22.03.12
✎
12:48
|
(25) в скуле нет такой конструкции
select c1,c2 from table where (c1,c2) not in (select c1,c2 from table2) поэтому она трансформируется во что-то |
|||
41
Dunstan
22.03.12
✎
12:48
|
(29)ну вот и я не знал, что ответить про ускорение проведения документов
ну только если оптимизировать модуль проведения |
|||
42
Нуф-Нуф
22.03.12
✎
12:49
|
(40) интересно бы посмотреть в какой скулевский запрос 1с его переделает
|
|||
43
Axel2009
22.03.12
✎
12:55
|
SELECT
T1._Q_000_F_000, T1._Q_000_F_001, T1._Q_000_F_002 FROM #tt1 T1 WITH(NOLOCK) WHERE (NOT ((EXISTS(SELECT 1 FROM #tt2 T2 WITH(NOLOCK) WHERE (T1._Q_000_F_000 = T2._Q_001_F_000) AND (T1._Q_000_F_001 = T2._Q_001_F_001) AND (T1._Q_000_F_002 = T2._Q_001_F_002))))) |
|||
44
guitar_player
22.03.12
✎
12:57
|
(43) +100500
|
|||
45
Попытка1С
22.03.12
✎
12:58
|
Грохать за собой временные таблицы это хороший тон.
|
|||
46
Адинэснег
22.03.12
✎
13:00
|
(0) больше не старайся, не берем мы тебя к себе
и не звони |
|||
47
mirosh
22.03.12
✎
13:01
|
(32) ну-ну, удачи)
|
|||
48
Dunstan
22.03.12
✎
13:05
|
(46) Да я и не позвоню. Просто ради интереса спросил.
Ну так за ускорение проведения документов есть у кого какие мнения? |
|||
49
lordmb
22.03.12
✎
14:12
|
(48) ОбработкуПроведения в студию
|
|||
50
Dunstan
22.03.12
✎
16:53
|
49 ну мысли есть или где?
|
|||
51
shamannk
22.03.12
✎
16:56
|
(50) Есть! Не проводить так как проведение в твоем случае не требуется. Так как это ненужно по причине 1 и 4 условия.
|
|||
52
ileg
22.03.12
✎
17:08
|
(48) Смотря какие документы. Ускорить групповое проведение можно, отключив предварительно расчет итогов регистров.
|
|||
53
acsent
22.03.12
✎
17:10
|
на собеседование важно не что ты ответишь, а как ты ответишь. На такие вопросы нужно отвечать не задумываясь
|
|||
54
Зеленый Кот
22.03.12
✎
18:26
|
swap a,b
мой первый приз, на работу к вашему начальнику не пойду... |
|||
55
Зеленый Кот
22.03.12
✎
18:26
|
блин ветки попутал ;)
|
|||
56
Господин ПЖ
22.03.12
✎
18:29
|
(47) что ну-ну? без особой необходимости мочить времянки смысла нет
|
|||
57
Axel2009
22.03.12
✎
18:29
|
(50)
1. выгнать всех из базы 2. писать порциями в транзакции 3. купить новое железо 4. проанализировать проведение, оптимизировать выборки данных (52) ага, и контролировать остатки совсем весело |
|||
58
Господин ПЖ
22.03.12
✎
18:30
|
(57) как в КД - выключил, загрузил, включил
|
|||
59
rs_trade
22.03.12
✎
18:32
|
(0) первый раз в первый класс?
|
|||
60
Axel2009
22.03.12
✎
23:41
|
(58) в кд остатки не считаются.
|
|||
61
Господин ПЖ
22.03.12
✎
23:42
|
(60) вопрос был как убыстрить... и потом грузят вероятно уже свершившийся факт - смысл контролировать
|
|||
62
Axel2009
22.03.12
✎
23:45
|
(61) перепроведение как правило восстановление последовательности..
|
|||
63
Dmitry77
23.03.12
✎
00:40
|
Еще один вариант, правда синтаксис не помню,
выбрать Накладная, Товар, Количество {ВЫБРАТЬ Накладная, Товар, Количество 1 как инд ИЗ Таблица1 Объединить ВЫБРАТЬ Накладная, Товар, Количество 2 как инд ИЗ Таблица2 Групировать(накладная, товар,Количество) Сумма инд} Где инд = 2 |
|||
64
Упанишады
23.03.12
✎
05:47
|
(63)Надо "ВЫБРАТЬ РАЗЛИЧНЫЕ...". В противном случае в результате группировки и суммирования могут появиться записи, где инд = 4, инд = 6 и т.д. и запрос не отработает.
|
|||
65
Новиков
23.03.12
✎
08:47
|
>>Cтранно, что не было вопроса "А на какую сумму з/п эта задача"
пожалуйста, озвучьте город и цену вакансии! |
|||
66
Dunstan
16.04.12
✎
15:07
|
Москва, от 80. Ну там было много других вопросов.
|
|||
67
aleks-id
16.04.12
✎
15:18
|
>>много других вопросов.
процедуру списания по партиям не просили написать? а то мне одни понтовые умники прислали "приглашение" типа "подравляем, вы перешли во второй тур отбора. решите несколько задач, бла-бла-бла" и вордовский файл причепленный через опу. ну я им и ответил что серьезные работодатели сначала присылают описание вакансии, а уже потом задают задачки для второго класса. а партионку пусть засунут в зад ибо рауз рулит. |
|||
68
Dunstan
16.04.12
✎
17:21
|
(67)что мне не особо понравилось это то, что вопросы не точно сформулированы...
вот про проведение... убыстрить переписывая код или как.... |
|||
69
Shurjk
16.04.12
✎
17:21
|
(0) Совсем уже обрзели уже на собеседованиях в мисту лезут чтоб им тут элементарные задачи решали.
|
|||
70
Shurjk
16.04.12
✎
17:24
|
(67) Они наверное после этого застрелились от огорчения.
|
|||
71
aleks-id
16.04.12
✎
20:41
|
(70) мне пох. своим пафосом пусть протолкнут партионку поглубже.
|
|||
72
Адинэснег
16.04.12
✎
20:48
|
(69) дак знаешь как щас тестирование проводят? задают 6-7 тупых задач, и на мисту, мониторить клювастых
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |