Ich arbeite an einer Möglichkeit, die Bestellungsanzahl für Monate in jedem einzelnen Monat in einer bestimmten Zeitspanne und einige andere einschränkende Faktoren anzuzeigen. Hier ist meine Abfrage.SQL-Abfrage für Daten sortiert und nach Monaten gruppiert
SELECT month(o.ord_date) as month, COUNT(o.ord_id) as January, COUNT(o.ord_id) as February, COUNT(o.ord_id) as March, COUNT(o.ord_id) as April,
COUNT(o.ord_id) as May, COUNT(o.ord_id) as June, COUNT(o.ord_id) as July, COUNT(o.ord_id) as August, COUNT(o.ord_id) as September,
COUNT(o.ord_id) as October, COUNT(o.ord_id) as November, COUNT(o.ord_id) as December
FROM hotels h, countries r, cities c, orders o LEFT JOIN trips t ON o.trp_id=t.trp_id
WHERE o.ord_date>'2016-01-01' AND o.ord_date<'2017-01-05' AND t.spr_id IN ('34','68','53')
AND o.htl_id=h.htl_id AND h.ctr_id = r.ctr_id AND h.cty_id = c.cty_id AND r.ctr_id = 245
GROUP BY month(o.ord_date)
ORDER BY month ASC
Ich suche ein Ergebnis in etwa so:
| Jan | Feb | March | Apr | May | Jun | Jul | Aug | Sept | Oct | Nov | Dec
Jan | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1
Feb | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1
March | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1
Apr | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1
May | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1
Jun | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1
Jul | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1
Aug | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1
Sept | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1
Oct | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1
Nov | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1
Dec | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1
Vielen Dank im Voraus.
EDIT: Hier Aufträge Tabellendefinition P.Salmon angefordert:
CREATE TABLE IF NOT EXISTS `orders` (
`ord_id` int(11) NOT NULL AUTO_INCREMENT,
`ord_date` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
`ord_deliv_date` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
`trp_id` int(11) NOT NULL DEFAULT '0',
`htl_id` int(11) NOT NULL DEFAULT '0',
PRIMARY KEY (`ord_id`)
) ENGINE=MyISAM AUTO_INCREMENT=35026 DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci;
hier einige Felder, die zu erklären brauchen würde:
ord_date
Zeitpunkt, wenn der Auftrag zuerstord_deliv_date
Zeitpunkt gemacht wurde wenn die Bestellung geliefert werden soll. In diesem Fall beginnt das Datum, an dem die Fahrt beginnt (referenziert intrp_id
).htl_id
ist eine Referenz auf einen Hoteltisch, woctr_id
undcty_id
gespeichert ist.
Betrachten Fragen der Datenanzeige im Anwendungscode Handhabung – Strawberry
Zunächst implizite ersetzen verbindet sich mit expliziten verbindet. –
Können Sie bitte die Tabellendefinition für Bestellungen hinzufügen und einige Beispieldaten. –