2016-05-15 13 views
3

Bitte jemand kann mir helfen.beitreten Abfrage nach Datum

Ich muss diese beiden Abfragen beitreten und gruppiert nach Stunden. Das Abfrageergebnis kann viele Tage haben.

ERGEBNIS: Query1

SELECT DATE_FORMAT(Venta.fechaImpresion, "%h") AS fechaImpresion2, COUNT(*) AS total 
FROM `Venta` 
WHERE Venta.fechaImpresion LIKE "2016-05-02 %" 
GROUP BY HOUR(Venta.fechaImpresion) , DAY(Venta.fechaImpresion) 
LIMIT 0 , 30 

ERGEBNIS: Query2

SELECT DATE_FORMAT(Venta.fechaImpresion,"%h") as fechaImpresion FROM `Venta` 
where Venta.fechaImpresion >= "2016-05-02" and Venta.fechaImpresion <= "2016-05-09" 
GROUP BY hour(Venta.fechaImpresion) 

Wenn ich in einer Abfrage verbunden versuchen, das Ergebnis gleich Null ist.

SELECT DATE_FORMAT(Venta.fechaImpresion, "%h") AS fecha, dia1.total AS total1 
FROM `Venta` 
LEFT JOIN (

SELECT DATE_FORMAT(Venta.fechaImpresion, "%h") AS fechaImpresion 
FROM `Venta` 
WHERE Venta.fechaImpresion >= "2016-05-02" 
AND Venta.fechaImpresion <= "2016-05-09" 
GROUP BY HOUR(Venta.fechaImpresion) 
)fecha ON fecha.fechaImpresion = Venta.fechaImpresion 
LEFT JOIN (

SELECT DATE_FORMAT(Venta.fechaImpresion, "%h") AS fechaImpresion2, COUNT(*) AS total 
FROM `Venta` 
WHERE Venta.fechaImpresion LIKE "2016-05-02 %" 
GROUP BY HOUR(Venta.fechaImpresion) , DAY(Venta.fechaImpresion) 
)dia1 ON (dia1.fechaImpresion2 = fecha.fechaImpresion) 
WHERE Venta.fechaImpresion >= "2016-05-02" 
AND Venta.fechaImpresion <= "2016-05-09" 
GROUP BY HOUR(Venta.fechaImpresion) 
+0

Sie möchten an der Stunde teilnehmen, auch wenn sie aus verschiedenen Tagen kommen? – Nicarus

+0

nein, vom selben Tag – user3259091

+1

Sie möchten vielleicht mit 'EXTRACT (DAY_HOUR FROM fechaImpression)' für Ihre JOINs, et al. – Nicarus

Antwort

0

Sie können wie versuchen diese

Select b.second Tabellenspalte, a. * Aus einer ersten Tabelle, b zweite Tabelle, in der a.date column = b.date Spalte

0

würde ich empfehlen, zwei separate Griffe für die Tabellen zu verwenden. So etwas wie dieses:

SELECT DATE_FORMAT(v1.fechaImpresion, "%h") AS fechaImpresion2, COUNT(v1.*) AS total, DATE_FORMAT(v2.fechaImpresion,"%h") as fechaImpresion 
FROM `Venta` v1, 'Venta' v2 where v1.fechaImpresion = v2.fechaImpresion 

Sie könnten dann die verschiedenen Datumskriterien anwenden, wie Sie möchten.