ERROR 1241操作数应包含1列子查询工作日

时间:2017-09-25 17:17:43

标签: mysql subquery

我正在尝试执行一个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  |
+--------------+-------+--------+

1 个答案:

答案 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;