Mailinglisten-Archive |
Michael Borchers schrieb:
>>> SELECT
>>>> DAYOFMONTH(`date`),
>>>> `status`,
>>>> COUNT(`foo`) AS `count`
>>>> FROM
>>>> `bar`
>>>> WHERE
>>>> YEARMONTH(`date`) = [yyyymm]
>>>> AND
>>>> `status` IN ([die gewünschten Zustände, oder alle?])
>>>> GROUP BY
>>>> DAYOFMONTH(`date`),
>>>> `status`
>>>>
>>>>
>>>> eventuell noch mit ROLLUP wenn benötigt
>>>
>>> Hi Sebastian!
>>> Mit Deiner Query bekomme ich ja schon einmal jeden einzelnen Tag als
>>> einzelne Reihe - perfekt!
>>
>> Tag und Status
>>
>> tag - status - count
>>
>> 01 1 32
>> 01 3 16
>> 02 1 18
>> 03 2 10
>> ...
>>
>> sprich:
>> 32 mal Status 1 am Tag 1
>> 16 mal Status 3 am Tag 1
>
> Ja, aber durch den GROUP BY erhalte ich immer nur jeden Tag einmal;)
ich weis ja nciht was du machst, aber bei erhalte ich jeden Tag so oft wie
verschieden Zustände (status) ich habe an diesem Tag ...
CREATE TABLE IF NOT EXISTS `bar` (
`date` date NOT NULL,
`status` int(11) NOT NULL,
`foo` int(11) NOT NULL,
KEY `date` (`date`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
INSERT INTO `bar` VALUES
('2007-07-27', 2, 0),
('2007-07-27', 1, 0),
('2007-07-27', 3, 0),
('2007-07-27', 1, 0),
('2007-07-28', 3, 0),
('2007-07-28', 4, 0),
('2007-07-28', 3, 0),
('2007-07-28', 3, 0),
('2007-07-29', 2, 0),
('2007-07-30', 1, 0);
SELECT
DAYOFMONTH(`date`) AS `day`,
`status`,
COUNT(`foo`) AS `count`
FROM
`bar`
GROUP BY
DAYOFMONTH(`date`),
`status`;
day status count
27 1 2
27 2 1
27 3 1
28 3 3
28 4 1
29 2 1
30 1 1
php::bar PHP Wiki - Listenarchive