我正在尝试执行一个mysql查询,显示本周从周一到周日的产品数量。(在此示例中仅代码中的Lunes和Martes)
我已设法使用单个ID执行查询,但是当我想向所有人显示时,它会给我错误。
select formatopeso.tipo_formato, (select sum(cantidad)
from previsionpedidos
where id_formatopeso = 1 and WEEKDAY(fecha) = 0) as Lunes,
(select sum(cantidad) fromprevisionpedidos where id_formatopeso = 1 and WEEKDAY(fecha) = 1)
as Martes,
from previsionpedidos inner join formatopeso on
previsionpedidos.id_formatopeso = formatopeso.id_formatopeso
where formatopeso.id_formatopeso= 1 and yearweek(fecha,1) = yearweek(now())
group by formatopeso.tipo_formato;
我试试这个,但我有错误ERROR 1241(21000):操作数应该包含1列
select formatopeso.tipo_formato,
(select sum(cantidad) from previsionpedidos inner join
formatopeso on previsionpedidos.id_formatopeso = formatopeso.id_formatopeso
where WEEKDAY(fecha) = 0) as lunes,
(select sum(cantidad),fecha from previsionpedidos
inner join formatopeso on previsionpedidos.id_formatopeso =
formatopeso.id_formatopeso
where WEEKDAY(fecha) = 1) as Martes from previsionpedidos
inner join formatopeso on previsionpedidos.id_formatopeso = formatopeso.id_formatopeso
where yearweek(fecha,1) = yearweek(now())
group by formatopeso.tipo_formato;
由于
我需要显示类似于:
的结果+--------------+-------+--------+
| tipo_formato | Lunes | Martes |
+--------------+-------+--------+
| 12Ø 70gr | 175 | 250 |
| 20Ø 150gr | NULL| NULL |
| 22Ø 180gr | NULL| 125 |
| 25Ø 220gr | 200 | NULL |
| 28Ø 220gr | 175 | 250 |
+--------------+-------+--------+
答案 0 :(得分:0)
FROM
之前有一个多余的逗号。
SELECT formatopeso.tipo_formato,
(SELECT SUM(cantidad)
FROM previsionpedidos
WHERE id_formatopeso = 1
AND WEEKDAY(fecha) = 0
) as Lunes,
(SELECT SUM(cantidad)
FROM previsionpedidos
WHERE id_formatopeso = 1
AND WEEKDAY(fecha) = 1
) as Martes
FROM previsionpedidos
INNER JOIN formatopeso on previsionpedidos.id_formatopeso = formatopeso.id_formatopeso
WHERE formatopeso.id_formatopeso=1
AND yearweek(fecha,1) = yearweek(now())
GROUP BY formatopeso.tipo_formato;