SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 13.05.2012 21:01:30

denisOg
Участник
Зарегистрирован: 20.11.2009
Сообщений: 15

Сложный запрос с Group by

Есть таблица тСтавки
Код_ставки |Код_игрока_ставки | Дата_ставки | Сумма_ставки | Результат_ставки | Код_варианта_ставки|
1 1 5.05.2012 100.00 1 5
2 2 7.05.2012 150.00 0 4
3 3 7.05.2012 102.00 1 6
4 1 10.05.2012 100.00 1 5

Результат ставки - 1/0. 1- ставка-выиграла/0-нет

Есть таблица тПараметры
Код_парметра |Год_параметра|Месяц_параметра | Дата_начала_параметра | Дата_начала_параметра |
1 2012 апрель 1.04.2012 30.04.2012

 

2 2012 май 1.05.2012 31.05.2012
3 2012 июнь 1.06.2012 30.06.2012


Нужно получить отчет о ставках за Май.
Мне нужно в завпрсе вывести следующую таблицу:

Год |Месяц| Количество игроков| Сумма_ставок | Сумма_выигрышных_ ставок|Коэффициент_выигрыша|

Количество игроков- принимавших участие в ставках (в примере их 3)
Сумма_ставок - общая сумма по полю тСтавки.Сумма_ставки
Сумма_выигрышных_ ставок - это сумма тСтавки.Сумма_ставки где Результат_ставки=1
Коэффициент_выигрыша - 100*Сумма_выигрышных_ ставок/Сумма_ставок

Возможно ли сделать такой запрос?

Вот что у меня получилось

SELECT
тПараметры.Год_параметра AS Год
тПараметры.Месяц_параметра AS Месяц
COUNT(тСтавки.Код_игрока_ставки) AS Количество игроков //как тут подсчитать колово уникальных записей?
SUM(тСтавки.Сумма_ставки) AS Сумма_ставки

FROM
тПараметры,тСтавки

WHERE
тСтавки.Дата_ставки>=тПараметры.Дата_начала_параметра
AND
тСтавки.Дата_ставки<=тПараметры.Дата_окончания_параметра
AND
тПараметры.Год_параметра='2012'
AND
тПараметры.Месяц_параметра='Май'

Неактивен

 

#2 14.05.2012 10:57:27

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: Сложный запрос с Group by

select year(`Дата_ставки`) `Год`, month(`Дата_ставки`) `Месяц`, count(distinct `Код_игрока_ставки`) `Количество игроков`, sum(`Сумма_ставки`) `Сумма_ставок`, sum(if(`Результат_ставки`,`Сумма_ставки`,0)) `Сумма_выигрышных_ ставок`, 100*`Сумма_выигрышных_ ставок`/`Сумма_ставок` `Коэффициент_выигрыша` from тСтавки where `Год`=2012 and `Месяц`='Май' group by 1,2;

 

Неактивен

 

#3 14.05.2012 11:34:13

denisOg
Участник
Зарегистрирован: 20.11.2009
Сообщений: 15

Re: Сложный запрос с Group by

vasya написал:

select year(`Дата_ставки`) `Год`, month(`Дата_ставки`) `Месяц`, count(distinct `Код_игрока_ставки`) `Количество игроков`, sum(`Сумма_ставки`) `Сумма_ставок`, sum(if(`Результат_ставки`,`Сумма_ставки`,0)) `Сумма_выигрышных_ ставок`, 100*`Сумма_выигрышных_ ставок`/`Сумма_ставок` `Коэффициент_выигрыша` from тСтавки where `Год`=2012 and `Месяц`='Май' group by 1,2;

 

Спасибо, разобрался.

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson