В дебрях водопада
Oct. 23rd, 2014 01:21 am![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Про высокие и низкие технологии
Коллега спрашивает:
- А правда, вот такого не может быть?
- Несомненно, - отвечаю я.
- Точно?
- Точно-точно.
- А как же у меня получилось?
Грубо говоря, надо сравнить строки «A» со строками «B» в таблице определённого вида. По его словам получается, что происходят какие-то магические вещи.
Похожу я к нему, пялюсь в монитор, и предстаёт перед моим взором какой-то монстр... с OUTER JOIN, с кучей каких-то заумных условий, с хитрым сплетением колонок и ещё чем-то страшным, что ни осознать, ни оценить я не в состоянии.
- Какой номер таблицы? - спрашиваю, возвращаюсь к своему компу и зову его.
Дальше по шагам
- Ctrl-2 и переход на второй воркспейс. (Менеджер воркспейсов у M$ дурацкий, зато бесплатный и ставится без административных прав.)
- Клик мышкой на закладку с базами в открытом SQL-туле, клик на базу и ввод числа в строку поиска.
- Двойной клик на имя найденной таблицы.
- Над раскрывшейся таблицей клик на кнопку «конвертировать в SQL».
- F5 после того, как открылась закладка с запросом. (То есть, запуск SQL.)
- Клик мышкой в первую строку таблицы, появившейся в нижней части окна. Shift-Ctrl со стрелочкой вправо. (То есть, Select первой строки от начала и до конца.)
- Ctrl-C и Enter, чтобы скопировать первую строку с заголовками, перевернув строки в столбцы.
- Двойной клик на Excel файл на рабочем столе.
- Клик в него и Ctrl-V. В результате два столбца: заголовки и значения.
- Select столбца с заголовками. Ctrl-C.
- Ctrl-1 и переход на первый воркспейс.
- Клик в открытый текстовый редактор и Ctrl-N, чтобы открыть новый файл. (Обычно пишу в уже открытый лог, но это чужой текст, который мне болше не нужен.)
- Ctrl-V. Select колонки имён столбцов. Клик на кнопку сортировки. Enter.
- Печатаю «SELECT» вверху, следующей строкой имя столбца с «A/B».
- Select для столбцов ниже. Три раза Tab, чтобы отодвинуть вправо.
- Select трёх табов. Ctrl-C. F8, на который переведён Replace. Tab, и Ctrl-V в поле для того, на что заменять. Запятая перед предпоследним табом и Ctrl-A
В результате, имена столбцов отсортированы и аккуратно стоят отступом, разделённые запятыми. - На следующей строке печатаю «FROM»
- Далше, Ctrl-2, Select имени базы в SQL-туле, Ctrl-C, Ctrl-1 обратно, клик в текстовый редактор и Ctrl-V.
- Следующей строкой печатаю «ORDER BY».
- Копирую ниже имена столбцов таблицы, которые подходят для сортировки.
- Самым нижним добавляю тот столбец, который «A/B».
- Select всего полученного текста. Ctrl-C.
- Ctrl-2. Клик в SQL-тул. Select того, что там стоит. Del. Ctrl-V.
Итого в туле стоит готовый запрос. - F5, чтобы запустить SQL.
- Смотрю таблицу внизу, переставляю пару столбцов в ORDER BY. F5.
- Внизу красивая табличка, с отсортированными строками, первым столбцом идёт «A - B - A - B - A - B».
- Select первых двух строк. Ctrl-C. Enter. (Диалог при копировании надоел, но он не убирается.)
- Тыкаю в раскрытый Excel, в верхнюю клетку второго столбца. Ctrl-V.
- Первый столбец таблицы сверху до низу забит тупой формулой, которая говорит «OK» если значения в «A» и «B» совпадают, и «ERR», если нет.
- Показываю коллеге результат и говорю:
- Ну вот. У тебя значения в столбцах «_before» и «_after» перепутаны. Числа в «A» и «B» одинаковые, только столбцы сместились.
Это только выглядит длинно. На самом деле, только пальцы по клавиатуре бегают, а ответ был готов, ещё до того, как успеешь дочитать до середины. (Хотя некоторые операции в этих дурацких Виндах я бы предпочёл вывести на педали.)
Коллега смотрит на результат. Конечно, не так интересно, как строить хитрые запросы и выдвигать смелые теории, но он однозначен.
Он бурчит что-то себе под нос. Возвращается на свое место. Смотрит на меня...
А теперь догадайтесь, что он произносит?
- Никогда бы не подумал, что ты используешь Excel.
Чёрт побери, никаких административных прав, голимые Винды и виндусятные тулы вместо нормальных средств разработки. Ни командной строки, ни XEmacs. Даже IExplorer в качестве браузера.
А он, видите-ли удивлён, что я как последний бухгалтер занимаюсь копи-пейстом и сравниваю дебет с кредитом вместо высокоинтеллектуального написания чистых и возвышенных SQL-запросов.
no subject
Date: 2014-10-23 07:41 am (UTC)