powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Подскажите, что неверно я делаю в запросе (уровень - новичок)
9 сообщений из 9, страница 1 из 1
Подскажите, что неверно я делаю в запросе (уровень - новичок)
    #39960471
MVY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MVY
Гость
Специалисты SQL, помогите, пожалуйста, разобраться. Изучаю самостоятельно MS SQL.
Пишу запрос, а он не работает, вернее я не понимаю, почему он не работает. Интересно получить не просто написанный запрос правильно, а что я не так понимаю и делаю, что не работает мой запрос.
Сам запрос (что хочу сделать и логику пишу после запроса):
SELECT b.X, b.Y
FROM (SELECT a.X, a.Y FROM TAB1 A WHERE a.X = (SELECT MIN(TAB1.X) FROM TAB1))B
WHERE b.Y = (SELECT MAX(а.Y) FROM А)

Исходные данные:
таблица ТАВ1 с двумя столбцами данных X и Y (значения в них не уникальны)
Хочу вывести те значения Y, когда они максимальны после того, как выведены минимальные значения Х.

Моя логика в моем запросе (привязку данных к конкретной таблицу делаю специально, чтобы показать как я понимаю):
Планирую выводить, условно говоря, вторую производную (таблица В) от исходной таблицы(ТАВ1), где первой производной (Таблица А) буду находить все строки, где Х примет МИН значения

Шаги описываю, как понимаю последовательность выполнения запроса.
ШАГ1. Делается расчет таблицы B из которой будет высчитываться максимальный Y
FROM (SELECT a.X, a.Y FROM TAB1 A WHERE a.X = (SELECT MIN(TAB1.X) FROM TAB1))B
Таблица А будет результат всех значений МИН X для которых будут соответствовать какие-то значения Y из привязки в исходной таблице. Всю получившуюся таблицу для последующего называю В. На данном этапе я понимаю, что у меня в памяти есть 3 таблицы, исходная, таблица А и В на этом этапе одинаковые по своим значениям.
ШАГ2. Вывожу столбцы X и Y таблицы В, где переменная Y таблицы В будет принимать МАКС значения из таблицы А

Система мне выдает ошибку, что у меня неверно имя объекта А.
...
Рейтинг: 0 / 0
Подскажите, что неверно я делаю в запросе (уровень - новичок)
    #39960493
Гавриленко Сергей Алексеевич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Выполните пункт 4 и пункт 6.

Иначе система права.
...
Рейтинг: 0 / 0
Подскажите, что неверно я делаю в запросе (уровень - новичок)
    #39960510
MVY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MVY
Гость
Гавриленко Сергей Алексеевич,

Точно, со всеми патчами, к сожалению, дать версию не могу - 2012.
По скриптам таблиц - это не какая-то практическая задача, это задача из курса обучения. Да и мой вопрос не в том, чтобы мне написали код, а в том, правильно ли я строю логику или я где-то неверно понимаю саму теорию. Задача, как мне кажется, очень легкая, т.е. решить с небольшим массивом данных в том же Excel времени надо меньше минуты, но вот почему не ложится в ответ, не понимаю. Сервер, который анализирует решение, точно наблюдается и задача точно решается, там ошибка - минимальная возможная вероятность. Мне кажется, что я что-то неверно понимаю при переименовании таблиц и откуда я тяну данные для расчета. Потому что если я в последней строке WHERE b.Y = (SELECT MAX(а.Y) FROM А) заменю на
WHERE b.Y = "введу конкретное значение, которое получу в том же эксель", то ответ на выходе такой, как должен быть.

Тут вопрос больше теоретического понимания ...

Заранее всем спасибо, кто сможет что-то подсказать.
...
Рейтинг: 0 / 0
Подскажите, что неверно я делаю в запросе (уровень - новичок)
    #39960513
MVY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MVY
Гость
Гавриленко Сергей Алексеевич
Выполните пункт 4 и пункт 6.

Иначе система права.


Попробовал у себя на
Microsoft SQL Server 2012 - 11.0.2100.60 (X64)
Feb 10 2012 19:39:15
Copyright (c) Microsoft Corporation
Express Edition (64-bit) on Windows NT 6.2 <X64> (Build 9200: )
та же самая ошибка :(
...
Рейтинг: 0 / 0
Подскажите, что неверно я делаю в запросе (уровень - новичок)
    #39960519
MVY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MVY
Гость
Решил попробовать в последней строке "WHERE b.Y = (SELECT MAX(а.Y) FROM А)" вместо "FROM A" попробовать сослаться не на таблицу А, а еще раз прописать получение данных, т.е. по сути повторить строку "FROM (SELECT a.X, a.Y FROM TAB1 A WHERE a.X = (SELECT MIN(TAB1.X) FROM TAB1))B".
Как итог, получается вот такой вот РАБОЧИЙ запрос:
SELECT X, Y
FROM (SELECT X, Y FROM TAB1 WHERE X = (SELECT MIN(X) FROM TAB1))B
WHERE Y = (SELECT MAX(Y) FROM (SELECT X,Y FROM TAB1 WHERE X = (SELECT MIN(X) FROM TAB1))C)

Отсюда уточняющие вопросы:
1. Почему я не могу просто сослаться на созданную таблицу B, а вынужден сделать тоже самое действие и создать еще одну таблицу С?
2. Посоветуйте, что почитать для углубления именно в этот теоретический аспект, я так понимаю, что тут какая-то особенность с объектами, которые я создаю и на которые я ссылаюсь?

Спасибо, кто сможет откликнуться и найти время на такую достаточно простую задачу для ГУРУ SQL.
...
Рейтинг: 0 / 0
Подскажите, что неверно я делаю в запросе (уровень - новичок)
    #39960521
Гавриленко Сергей Алексеевич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Удивительно, как много может человек нести ненужной оправдательной чуши вместо того, чтобы написать все, что его просят -- исходные данные, конечные данные и описание алгоритма, по которому необходимо получить второе из первого.
...
Рейтинг: 0 / 0
Подскажите, что неверно я делаю в запросе (уровень - новичок)
    #39960525
Гавриленко Сергей Алексеевич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MVY
Решил попробовать в последней строке "WHERE b.Y = (SELECT MAX(а.Y) FROM А)" вместо "FROM A" попробовать сослаться не на таблицу А, а еще раз прописать получение данных, т.е. по сути повторить строку "FROM (SELECT a.X, a.Y FROM TAB1 A WHERE a.X = (SELECT MIN(TAB1.X) FROM TAB1))B".
Как итог, получается вот такой вот РАБОЧИЙ запрос:
SELECT X, Y
FROM (SELECT X, Y FROM TAB1 WHERE X = (SELECT MIN(X) FROM TAB1))B
WHERE Y = (SELECT MAX(Y) FROM (SELECT X,Y FROM TAB1 WHERE X = (SELECT MIN(X) FROM TAB1))C)

Отсюда уточняющие вопросы:
1. Почему я не могу просто сослаться на созданную таблицу B, а вынужден сделать тоже самое действие и создать еще одну таблицу С?
2. Посоветуйте, что почитать для углубления именно в этот теоретический аспект, я так понимаю, что тут какая-то особенность с объектами, которые я создаю и на которые я ссылаюсь?

Спасибо, кто сможет откликнуться и найти время на такую достаточно простую задачу для ГУРУ SQL.


1. Потому что никакую таблицу B вы не создавали, даже если вам кажется обратное.
2. Базовый синтаксис команд с примерами.
...
Рейтинг: 0 / 0
Подскажите, что неверно я делаю в запросе (уровень - новичок)
    #39960528
MVY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MVY
Гость
Гавриленко Сергей Алексеевич
Удивительно, как много может человек нести ненужной оправдательной чуши вместо того, чтобы написать все, что его просят -- исходные данные, конечные данные и описание алгоритма, по которому необходимо получить второе из первого.


Я, конечно, извиняюсь, но просто взять и сделать за кого-то многие вещи, я сам могу. Но вопрос был не в том, чтобы за меня сделали и сказали - пользуйся, а в том, чтобы обратили внимание на определенный аспект теории и возможно подсказали правильный вектор рассмотрения. Как по мне, вопрос задан был корректно и суть вопроса - понимание теории и были даны как исходные данные, так и описание алгоритма, по которому необходимо получить второе из первого.
Не вижу нигде оправданий. А назвать размышления новичка в теме "чушью" можно рассматривать как неумением или нежеланием научить чему-то... что-то из серии "вы дайте мне автомобиль и я вам покажу как его водить, а вот объяснить почему он вообще едет - это типа для слабаков и лузеров.

Не бывает плохих учеников, которые не знают предмет, бывают бездарные учителя, которые не могут в своем предмете заинтересовать.
...
Рейтинг: 0 / 0
Подскажите, что неверно я делаю в запросе (уровень - новичок)
    #39960529
Гавриленко Сергей Алексеевич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Модератор: Вашим преподам в универе будете рассказывать, какие они бездари, что вы их предмет на 2 знаете. А тут ни университетом, ни классическим учительством даже и не пахнет.

Ваше поведение -- это примерно как продавцам в супермаркете рассказывать, что они не могут вас научить выбирать вино или макароны, не заинтересовали они, видите ли, вас. А оно им вообще надо?
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Подскажите, что неверно я делаю в запросе (уровень - новичок)
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]