как результат одним махом разбить по датам ?

Ekklipce

Новичок
как результат одним махом разбить по датам ?

Форум привет..

вобщем такие pr-ги :

id| data | x y
1 | 2004-01-01 | 5 5
2 | 2004-01-02 | 5 5
3 | 2004-01-03 | 5 4
4 | 2004-01-05 | 5 4
5 | 2004-01-05 | 5 4
6 | 2004-01-06 | 5 4
7 | 2004-01-07 | 5 4
8 | 2004-01-07 | 5 4

нужно (например, сумма):
2004-01-01 - 10
2004-01-02 - 10
2004-01-03 - 9
2004-01-04 - 0
2004-01-05 - 18
2004-01-06 - 9
2004-01-07 - 9

и так за весь месяц..

+ тоже самое за месяцы.. между 2004-01-01 и 2004-05-01
5 месяцев с шагов в один месяц - считаться соответственно будем за месяц..сверху за день..
 

Profic

just Profic (PHP5 BetaTeam)
>2004-01-04 - 0
не выйдет
а так
select data, sum (x + y) as summa from .... order by data group by data

а про месяц соответственно man по Муське на предмет get_month и get_year
 

chira

Новичок
создай таблицу
Код:
CREATE TABLE sys_date (
dt DATE NOT NULL PRIMARY KEY);
можешь заполнить её лет на 20 датами

Код:
select a.data
, sum (b.x + b.y) as summa
from sys_date a
  LEFT JOIN mytable b ON a.dt=b.data
group by a.data
 

Ekklipce

Новичок
Originally posted by chira
создай таблицу
Код:
CREATE TABLE sys_date (
dt DATE NOT NULL PRIMARY KEY);
можешь заполнить её лет на 20 датами

Код:
select a.data
, sum (b.x + b.y) as summa
from sys_date a
  LEFT JOIN mytable b ON a.dt=b.data
group by a.data
пасиб за ответ.. но нельзя ли чётче написать ответ ? ))))...

смысл этой затеи понял..хитро получилось )).. тем не менее..
если не сложно..
 

chira

Новичок
если бы тебе не нужна была не существующая дата
нужно (например, сумма):
2004-01-01 - 10
2004-01-02 - 10
2004-01-03 - 9
2004-01-04 - 0
2004-01-05 - 18
2004-01-06 - 9
2004-01-07 - 9
то хватило бы ответа Profic

таблица sys_date должна содержать все даты за определенный период, без пропусков.
период сам определи.

нельзя ли чётче написать ответ
нельзя ли чётче спросить?
спрашивай что конретно не понятно.
 

Ekklipce

Новичок
SELECT general.date_issue AS date1, sum( general.page + general.sector ) AS summa

FROM dates

LEFT JOIN general ON general.date_issue = dates.date_null
WHERE dates.date_null > '2004-01-01' AND dates.date_null < '2004-02-01'

GROUP BY date1
ORDER BY date1 DESC

вот эта фича не выдает кулевых значений..(((..
хотя по идее должна..

В dates - забиты все даты 2004 года...
в genneral - искомые даты.. которые заполняются туда не каждый день, некоотрые отсутствуют - имено по этим надо получить 0 или NULL
 

Profic

just Profic (PHP5 BetaTeam)
не по той дате группируешь
и скажи тебе трудно при выводе в php котролировать нулевые значения?
 
Сверху