Форум: "Базы";
Текущий архив: 2004.12.26;
Скачать: [xml.tar.bz2];
ВнизПомогите создать запрос Найти похожие ветки
← →
Sens © (2004-11-24 11:28) [0]Пишу прогу статистики для CS.
Хочу создать запрос, который бы показывал накопительный рейтинг игрока.
тоесть: есть (имя, дата,убийств, смертей) человека за каждый день, необходимо чтобы в дате была сумма (убийств, смертей(предыдущая дата + текушая дата)).
Например:
Имя Дата Убил Умер
Игрок вчера 10 5
Игрок сегодня убил вчера+убил сегодня ...
Игрок завтра убил сегодня+убил завтра ...
← →
Sergey13 © (2004-11-24 11:36) [1]select Имя,Дата,sum(Убил),sum(Умер )
from CS_table
group by Имя,Дата
← →
Александр Иванов © (2004-11-24 11:45) [2]select t.Name, t.Date1, t.Kill + t1.Kill, t.Death + t1.Death
from Table1 t, Table1 t1 where t.Name = t1.Name and t.Date1 = (t1.Date1-1)
Примерно так
← →
Sens © (2004-11-24 11:56) [3]to Александр Иванов
Спсибо попробую.
← →
Sens © (2004-11-24 16:11) [4]Сделал следующее:
SELECT t.Player,
CDate(t.Death_DAY) AS D1,
(t.KILLS+t1.KILLS) AS kills,
(t.Death+t1.Death) AS Death
FROM
Rating_By_Day AS t,
Rating_By_Day AS t1
Where
(t.Player= t1.Player)
and
CDate(t.Death_DAY)=CDate(t1.Death_DAY)-1
Но проблема в том, что если в датах есть пропуск, т.е.(CDate(t1.Death_DAY)-1)=Null
расчет дальнейших данных идет неправельно.
Помогите поправить эту ситуацию.
← →
Sandman25 © (2004-11-24 16:18) [5]Вместо последней строки
CDate(t.Death_DAY)=CDate(SELECT MAX(Death_Day) from Rating_By_Day
where Death_DAY<t1.Death_DAY))
А чтобы еще и для первой даты правильно сработало необходимо Left join использовать.
← →
Johnmen © (2004-11-24 16:18) [6]Это значит, что есть записи в t1, где поле Death_DAY не заполнено.
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2004.12.26;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.082 c