Fórum Erro ao importar views #419003
27/06/2012
0
Segue o código que gera o erro:
/*!50001 DROP TABLE IF EXISTS `automovel_coluna`*/;
/*!50001 DROP VIEW IF EXISTS `automovel_coluna`*/;
/*!50001 SET @saved_cs_client = @@character_set_client */;
/*!50001 SET @saved_cs_results = @@character_set_results */;
/*!50001 SET @saved_col_connection = @@collation_connection */;
/*!50001 SET character_set_client = utf8 */;
/*!50001 SET character_set_results = utf8 */;
/*!50001 SET collation_connection = utf8_general_ci */;
/*!50001 CREATE ALGORITHM=UNDEFINED */
/*!50013 DEFINER=`root`@`localhost` SQL SECURITY DEFINER */
/*!50001 VIEW `automovel_coluna` AS select `q`.`Codigo` AS `Codigo`,Automóvel AS `Tipo`,(select sum(`t`.`Automovel`) from `automovel` `t` where (`t`.`Codigo` = `q`.`Codigo`)) AS `Total` from `automovel` `q` where (`q`.`Automovel` > 0) union select `q`.`Codigo` AS `codigo`,Ônibus AS `Total`,(select sum(`t`.`Onibus`) from `automovel` `t` where (`t`.`Codigo` = `q`.`Codigo`)) AS `(SELECT SUM(t.Onibus)
FROM automovel t
WHERE t.Codigo = q.codigo )` from `automovel` `q` where (`q`.`Onibus` > 0) union select `q`.`Codigo` AS `codigo`,Microônibus AS `Total`,(select sum(`t`.`Microonibus`) from `automovel` `t` where (`t`.`Codigo` = `q`.`Codigo`)) AS `(SELECT SUM(t.Microonibus)
FROM automovel t
WHERE t.Codigo = q.codigo )` from `automovel` `q` where (`q`.`Microonibus` > 0) union select `q`.`Codigo` AS `codigo`,Caminhão AS `Total`,(select sum(`t`.`Caminhao`) from `automovel` `t` where (`t`.`Codigo` = `q`.`Codigo`)) AS `(SELECT SUM(t.Caminhao)
FROM automovel t
WHERE t.Codigo = q.codigo )` from `automovel` `q` where (`q`.`Caminhao` > 0) union select `q`.`Codigo` AS `codigo`,Caminhonete AS `Total`,(select sum(`t`.`Caminhonete`) from `automovel` `t` where (`t`.`Codigo` = `q`.`Codigo`)) AS `(SELECT SUM(t.Caminhonete)
FROM automovel t
WHERE t.Codigo = q.codigo )` from `automovel` `q` where (`q`.`Caminhonete` > 0) union select `q`.`Codigo` AS `codigo`,Camioneta AS `Total`,(select sum(`t`.`Camioneta`) from `automovel` `t` where (`t`.`Codigo` = `q`.`Codigo`)) AS `(SELECT SUM(t.Camioneta)
FROM automovel t
WHERE t.Codigo = q.codigo )` from `automovel` `q` where (`q`.`Camioneta` > 0) union select `q`.`Codigo` AS `codigo`,Reboque AS `Total`,(select sum(`t`.`Reboque`) from `automovel` `t` where (`t`.`Codigo` = `q`.`Codigo`)) AS `(SELECT SUM(t.Reboque)
FROM automovel t
WHERE t.Codigo = q.codigo )` from `automovel` `q` where (`q`.`Reboque` > 0) union select `q`.`Codigo` AS `codigo`,Semi-Reboque AS `Total`,(select sum(`t`.`SemiReboque`) from `automovel` `t` where (`t`.`Codigo` = `q`.`Codigo`)) AS `(SELECT SUM(t.SemiReboque)
FROM automovel t
WHERE t.Codigo = q.codigo )` from `automovel` `q` where (`q`.`SemiReboque` > 0) union select `q`.`Codigo` AS `codigo`,Motocicleta AS `Total`,(select sum(`t`.`Motocicleta`) from `automovel` `t` where (`t`.`Codigo` = `q`.`Codigo`)) AS `(SELECT SUM(t.Motocicleta)
FROM automovel t
WHERE t.Codigo = q.codigo )` from `automovel` `q` where (`q`.`Motocicleta` > 0) union select `q`.`Codigo` AS `codigo`,Bicicleta AS `Total`,(select sum(`t`.`Bicicleta`) from `automovel` `t` where (`t`.`Codigo` = `q`.`Codigo`)) AS `(SELECT SUM(t.Bicicleta)
FROM automovel t
WHERE t.Codigo = q.codigo )` from `automovel` `q` where (`q`.`Bicicleta` > 0) union select `q`.`Codigo` AS `codigo`,Outro AS `Total`,(select sum(`t`.`Outro`) from `automovel` `t` where (`t`.`Codigo` = `q`.`Codigo`)) AS `(SELECT SUM(t.Outro)
FROM automovel t
WHERE t.Codigo = q.codigo )` from `automovel` `q` where (`q`.`Outro` > 0) union select `q`.`Codigo` AS `codigo`,Não Informado AS `Total`,(select sum(`t`.`NaoInformado`) from `automovel` `t` where (`t`.`Codigo` = `q`.`Codigo`)) AS `(SELECT SUM(t.NaoInformado)
FROM automovel t
WHERE t.Codigo = q.codigo )` from `automovel` `q` where (`q`.`NaoInformado` > 0) */;
[Err] 1166 (4200) at line 4134 - Incorrect column name (SELECT SUM(t.Onibus)
FROM automovel t
WHERE t.Codigo = q.codigo )
Alguém tem alguma dica para resolução ou teve o problema e resolveu de alguma forma?
Robson Antunes
Curtir tópico
+ 0Posts
27/06/2012
Eduardo Gonçalves
union
select `q`.`Codigo` AS `codigo`,
Ônibus AS `Total`,
(select sum(`t`.`Onibus`) from `automovel` `t` where (`t`.`Codigo` = `q`.`Codigo`)) AS
`(SELECT SUM(t.Onibus) FROM automovel t WHERE t.Codigo = q.codigo )`
FROM `automovel` `q` where (`q`.`Onibus` > 0)
Olha o que está escrito depois do AS... uma instrução SELECT, quando deveria estar um apelido para a consulta anterior, como por exemplo AS Total.
Gostei + 0
27/06/2012
Robson Antunes
SELECT q.Codigo, Automóvel AS Tipo, (SELECT SUM(t.Automovel) FROM automovel t WHERE (t.Codigo = q.Codigo)) AS Total FROM automovel q WHERE (q.Automovel > 0) UNION SELECT q.codigo, Ônibus AS Total , (SELECT SUM(t.Onibus) FROM automovel t WHERE t.Codigo = q.codigo ) FROM automovel q WHERE (q.Onibus > 0) UNION SELECT q.codigo, Microônibus AS Total , (SELECT SUM(t.Microonibus) FROM automovel t WHERE t.Codigo = q.codigo ) FROM automovel q WHERE (q.Microonibus > 0) UNION SELECT q.codigo, Caminhão AS Total , (SELECT SUM(t.Caminhao) FROM automovel t WHERE t.Codigo = q.codigo ) FROM automovel q WHERE (q.Caminhao > 0) UNION SELECT q.codigo, Caminhonete AS Total , (SELECT SUM(t.Caminhonete) FROM automovel t WHERE t.Codigo = q.codigo ) FROM automovel q WHERE (q.Caminhonete > 0) UNION SELECT q.codigo, Camioneta AS Total , (SELECT SUM(t.Camioneta) FROM automovel t WHERE t.Codigo = q.codigo ) FROM automovel q WHERE (q.Camioneta > 0) UNION SELECT q.codigo, Reboque AS Total , (SELECT SUM(t.Reboque) FROM automovel t WHERE t.Codigo = q.codigo ) FROM automovel q WHERE (q.Reboque > 0) UNION SELECT q.codigo, Semi-Reboque AS Total , (SELECT SUM(t.SemiReboque) FROM automovel t WHERE t.Codigo = q.codigo ) FROM automovel q WHERE (q.SemiReboque > 0) UNION SELECT q.codigo, Motocicleta AS Total , (SELECT SUM(t.Motocicleta) FROM automovel t WHERE t.Codigo = q.codigo ) FROM automovel q WHERE (q.Motocicleta > 0) UNION SELECT q.codigo, Bicicleta AS Total , (SELECT SUM(t.Bicicleta) FROM automovel t WHERE t.Codigo = q.codigo ) FROM automovel q WHERE (q.Bicicleta > 0) UNION SELECT q.codigo, Outro AS Total , (SELECT SUM(t.Outro) FROM automovel t WHERE t.Codigo = q.codigo ) FROM automovel q WHERE (q.Outro > 0) UNION SELECT q.codigo, Não Informado AS Total , (SELECT SUM(t.NaoInformado) FROM automovel t WHERE t.Codigo = q.codigo ) FROM automovel q WHERE (q.NaoInformado > 0)
e que quando é exportada ela fica desta forma citada anteriormente, o erro sempre acaba acontecendo... existe uma forma de fugir deste erro?
Alguma alteração no código base? o até mesmo é melhor reescrever esta view com o código base?
Gostei + 0
27/06/2012
Robson Antunes
union
select `q`.`Codigo` AS `codigo`,
Ônibus AS `Total`,
(select sum(`t`.`Onibus`) from `automovel` `t` where (`t`.`Codigo` = `q`.`Codigo`)) AS
`(SELECT SUM(t.Onibus) FROM automovel t WHERE t.Codigo = q.codigo )`
FROM `automovel` `q` where (`q`.`Onibus` > 0)
Olha o que está escrito depois do AS... uma instrução SELECT, quando deveria estar um apelido para a consulta anterior, como por exemplo AS Total.
Eduardo, aí você me ajudou muito, fiz o teste de reescrever a view da forma do código base da mesma.
Inicialmente deu certo, o problema agora é que toda vez que exportar as views vai gerar o mesmo erro e sempre terei que reescreve-lo.
Alguma forma de evitar isto?
Gostei + 0
27/06/2012
Eduardo Gonçalves
... UNION SELECT q.codigo, Microônibus AS Total , (SELECT SUM(t.Microonibus) FROM automovel t WHERE t.Codigo = q.codigo ) AS Soma FROM automovel q WHERE (q.Microonibus > 0) UNION SELECT q.codigo, Caminhão AS Total , (SELECT SUM(t.Caminhao) FROM automovel t WHERE t.Codigo = q.codigo ) AS Soma FROM automovel q WHERE (q.Caminhao > 0) ...
Não tenho idéia se vai resolver, mas é um teste que você pode fazer
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)