Problema com UPDATE de Tabela baseada em somatório de outra tabela [RESOLVIDO]
Saudações a todos do fórum. Como todos que começam a aprender MySQL, nos deparamos com problemas relativamente simples mas não conseguimos resolver.
Criei a tabela INFO_PACOTES que armazena informações de pacotes que trafegam na minha rede. Os arquivos são processados via shell e armazenados somente o MAC de origem e o tamanho do pacote.
mysql> desc INFO_PACOTES;
+-------------------------+-------------------+--------+------+--------------+--------+
| Field | Type | Null | Key | Default | Extra |
+-------------------------+-------------------+--------+------+--------------+--------+
| mac_origem | char(17) | YES | | NULL | |
| tamanho_frame | decimal(5,0) | YES | | NULL | |
+-------------------------+-------------------+--------+------+--------------+--------+
Como uma rede normal, diversos dispositivos são conectados e monitorados. Assim, haverão diversos dispositivos com diferentes MAC's.
Criei a tabela CONHECIDOS que está descrita abaixo. A única coisa que preciso é somar os valores da coluna tamanho_frame da tabela INFO_PACOTES agrupado por diferentes "mac_origem" e o resultado das somas atualizar o campo trafego_total da tabela CONHECIDOS.
+--------------------+---------------------+--------+------+-----------+--------+
| Field | Type | Null | Key | Default | Extra |
+--------------------+---------------------+--------+------+-----------+--------+
| mac | char(17) | NO | PRI | NULL | |
|trafego_total | decimal(20,0) | YES | | NULL | |
+--------------------+---------------------+--------+------+-----------+--------+
Crieia seguinte sentença abaixo:
UPDATE CONHECIDOS, INFO_PACOTES
SET trafego_total = (SELECT sum(tamanho_frame) FROM INFO_PACOTES GROUP BY INFO_PACOTES.mac_origem)
WHERE CONHECIDOS.mac=INFO_PACOTES.mac_origem;
Ao final da sentença, o select resulta em mais de uma linha, gerando o erro:
**ERROR 1242 (21000):** Subquery returns more than 1 row
Alguém sabe me dizero que estou errando?
Obrigado!Discussão (2)
Carregando comentários...