Задавайте вопросы, мы ответим
Вы не зашли.
Понятно. Ну, еще раз спасибо. За 6-7 часов общения с Вашей персоной я понял многое. Закрепить осталось.))
Неактивен
Кстати, возникла еще одна идея: можно ли на основе данного запроса вывести количество поражений команд?
Неактивен
Допишите вторую часть запроса, чтобы 0 показывал как раз и закрепите
Кстати, в той части запроса где
(
SELECT Game, Name, SUM(Point) AS p FROM Bout join Participant USING(Participant)
GROUP BY 1,2
) x
по хорошему тоже надо учитывать ограничение по времени.
А ещё лучше разбить на несколько простых, потому что когда допишите окончательно это будет такая конструкция...
Неактивен
pkhell написал:
Кстати, возникла еще одна идея: можно ли на основе данного запроса вывести количество поражений команд?
Да. Заменив два символа
Берите min вместо max в случае положительной разницы между ними.
Неактивен
Хм....а что именно подразумевается под второй частью запроса?)) Хорошо, учту.
Неактивен
Что еще интересно, в условии IF имеется параметр -1, который, как я понял, отнимает значений, чтобы +1 не засчитывался, но прикол в том, что если я его меняю на любое другое число, разницы не происходит.
Неактивен
pkhell написал:
Что еще интересно, в условии IF имеется параметр -1, который, как я понял, отнимает значений, чтобы +1 не засчитывался, но прикол в том, что если я его меняю на любое другое число, разницы не происходит.
vasya написал:
И если она равна 0, то в качестве максимального кол-ва балов берете -1. Так как в таблице times нет строки где кол-во балов равно отрицательному числу, то данный результат учтен не будет.
Неактивен
pkhell написал:
Хм....а что именно подразумевается под второй частью запроса?))
Чтобы для команды не имевшей ни одной победы показывало 0
Неактивен
Это получается, что надо через UNION создать дополнительный запрос с учетом данного условия?
Неактивен
Нет, через left join.
Список команд, игравших в указанный период (за последние три месяца) объединяете с имеющимся результатом и если нет соответствия, то присваиваете 0.
Неактивен
Вот оно как. Сейчас попробую. Может хоть что-нибудь получится.
Неактивен
vasya написал:
Нет, через left join.
Список команд, игравших в указанный период (за последние три месяца) объединяете с имеющимся результатом и если нет соответствия, то присваиваете 0.
Как я понял, надо соединять с подзапросом T, ведь он уже подводит итоги существования победных строк, так?
Неактивен
Во всем запросе мы имеем: подсчет очков, определение максимума и блокировка ничьих, присваивание максимумов командам по играми очкам, по строчкам подсчет побед. Получается, что необходимо определить команду, которая имеет ноль строк, но присутствует в предыдущих наборах. Вот только не пойму, как? Описанная Вами структура не понятна.
Отредактированно pkhell (25.03.2011 15:18:46)
Неактивен
Многоуважаемый vasya, не могли бы Вы подправить все полученный ранее результаты так, как считаете нужным и выложить финальный результат, так как у меня не получается. Я имею ввиду, добавить колонку проигрышей и последнюю команду с 0 очков. Спасибо.
Неактивен
Неактивен
Офигеть! А я думал, что просто необходимо добавить небольшую табличку, вот и все. Спасибо! Ей Богу, огромное Вам спасибо!
Неактивен
Все, разобрался.))
Неактивен