我希望有人能告诉我光明。
我很长时间以一周,一天和一年的时间在一次查询中得到一些销售结果,但没有机会。
我找到了一个可以帮助我但不能在mysql中工作的语法。
TRANSFORM
Sum(Cantidad) AS Ventas
SELECT
Producto, Cantidad
FROM
Pedidos
WHERE
Fecha Between #01-01-1998# And #12-31-1998#
GROUP BY
Producto
ORDER BY
Producto
PIVOT
DatePart("m", Fecha)
我真正的疑问就是这个:
select sum(orders.final_price) AS total
, orders.id_comercial
, vendedores.nombre
from orders
, vendedores
WHERE orders.id_comercial = vendedores.id
AND DATE(orders.date_purchased) = DATE(NOW())
GROUP BY orders.id_comercial
我真的很感激一些想法,也许是晚上在西班牙的某个晚上;)
我的查询结果如下:
total id_comercial nombre
740.83 24 AITOR ANGULO
2069.37 29 FERNANDO I
482.05 32 JOSE ANDRES
961.32 33 ALBERTO FERNANDEZ -CANTABRIA-
908.66 34 GONZALO
49.54 38 LUIS LOPEZ
4082.42 39 JULEN DEL CURA
1512.87 43 ALBERTO POBLACION
1268.91 44 MASSIMO
3269.08 45 JOSE RAMON BURGA
56.49 47 EMPRESA
2791.65 48 MARCO MORILLO
1445.57 61 TINO
869.73 63 SONIA
1052.02 381 DAVID ARIAS
真的是所有人。
答案 0 :(得分:1)
例如,这将为您提供当天,7天和年初至今的总计
select sum(case when DATE(orders.date_purchased) = DATE(NOW()) then orders.final_price end) AS TotalToday
, sum(case when DATE(orders.date_purchased) >= DATE(NOW() -7) then orders.final_price end) AS TotalLast7Days
, sum(case when YEAR(orders.date_purchased) = YEAR(NOW()) then orders.final_price end) AS TotalYearToDate
, orders.id_comercial
, vendedores.nombre
from orders
, vendedores
WHERE orders.id_comercial = vendedores.id
AND orders.date_purchased >= date(concat(year(now()),'-01-01'))
GROUP BY orders.id_comercial, vendedores.nombre
仅供参考date(concat(year(now()),'-01-01'))
为您提供当年的第一天
但是如果你想要一个数据透视表,那么
select sum(case when MONTH(orders.date_purchased) = 1 then orders.final_price end) AS Jan
, sum(case when MONTH(orders.date_purchased) = 2 then orders.final_price end) AS Feb
....
, sum(case when MONTH(orders.date_purchased) = 12 then orders.final_price end) AS Dec
, orders.id_comercial
, vendedores.nombre
from orders
, vendedores
WHERE orders.id_comercial = vendedores.id
AND orders.date_purchased >= date(concat(year(now()),'-01-01'))
GROUP BY orders.id_comercial, vendedores.nombre
没有MySQL(或其他任何体面的RDBMS)等效于Access运算符TRANSFORM,它会自动从数据中生成动态数量的列。