Задавайте вопросы, мы ответим
Вы не зашли.
Вот мне нужен вот такой подзапрос:
необходимо вывести платежи, за тот день, когда был сделан наибольший платеж
Неактивен
Неактивен
Отредактированно klow (05.10.2017 16:38:30)
Неактивен
Простите поторопился.
Ответ на ошибку вроде нашел....
...если у вас два или больше платежа с такой величиной, второй подзапрос вернет несколько дат и сравнение с помощью знака равно, которое здесь использовано, не может работать, т.к. оператор равно не умеет сравнивать одно значение с несколькими.
Неактивен
Важно отработать использование оператора
Неактивен
А смысл? Вам нужно чтобы выводило все дни с максимальным платежом?
Отредактированно klow (05.10.2017 16:48:17)
Неактивен
А если максимальные платежи будут различаться по времени за один и тот же день ???
Неактивен
Таково задание урока...
Неактивен
klow написал:
SELECT * FROM payments WHERE date(paydate) = (SELECT date(paydate) FROM payments ORDER BY amount desc LIMIT 1);
Отредактированно jron (05.10.2017 16:49:11)
Неактивен
Я не понял задачу. Можете привести четкую и полную формулировку задачи?
Неактивен
оператор IN используется совместно с вложенными запросами.
пример.
Нам необходимо вывести платежи, за тот день, когда был сделан наибольший платеж в вашей базе., и показать строки только с наибольшим платежом
этот запрос ... не сработает если будет несколько одинаковых строк
Неактивен
А если есть несколько больших одинаковых платежей за разные дни?
Отредактированно klow (05.10.2017 17:03:54)
Неактивен
у меня такой таблицы нет и в задаче так не сказано, но то же интересно решение
но очень интересует вопрос как показать только строки с наибольшими платежами
Неактивен
Неактивен
Неактивен
поясните пожалуйста значение ON - в данном контексте
и date(p.paydate)....
Вы использовали в запросе описания типа данных ?
Отредактированно jron (05.10.2017 17:46:16)
Неактивен
Функция date() преобразует значение DateTime в Date.
Неактивен