【发布时间】:2016-09-11 12:55:26
【问题描述】:
请有人可以帮助我。
我需要加入这两个查询并按小时分组。查询结果可以有很多天。
结果: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
结果: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)
如果我尝试加入一个查询,结果为零。
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 )
【问题讨论】:
-
你想按小时加入,即使他们来自不同的日子?
-
不,从同一天开始
-
您可能想考虑使用
EXTRACT(DAY_HOUR FROM fechaImpresion)进行您的 JOIN 等操作。 -
@Nicarus 非常感谢!!提取是工作。问候
-
很高兴你能成功。也许您可以发布您的解决方案并接受它以供其他人参考。