Consulta Mysql utilizando SUM (Resolvido)

5 respostas
H

tenho o seguinte comando…

funciona que é uma beleza!

porem quando eu utilizo:

me retorna o seguinte erro: <blockquote>

java.sql.SQLException: Column quantidade not found.

at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1056)

at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:957)

at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:927)

at com.mysql.jdbc.ResultSetImpl.findColumn(ResultSetImpl.java:1080)

at com.mysql.jdbc.ResultSetImpl.getString(ResultSetImpl.java:5474)

at Comissao.Relatorio.jButton2ActionPerformed(Relatorio.java:174)

at Comissao.Relatorio.access$100(Relatorio.java:26)

at Comissao.Relatorio$2.actionPerformed(Relatorio.java:118)

at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018)

at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341)

at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)

at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)

at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)

at java.awt.Component.processMouseEvent(Component.java:6505)

at javax.swing.JComponent.processMouseEvent(JComponent.java:3321)

at java.awt.Component.processEvent(Component.java:6270)

at java.awt.Container.processEvent(Container.java:2229)

at java.awt.Component.dispatchEventImpl(Component.java:4861)

at java.awt.Container.dispatchEventImpl(Container.java:2287)

at java.awt.Component.dispatchEvent(Component.java:4687)

at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832)

at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4492)

at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422)

at java.awt.Container.dispatchEventImpl(Container.java:2273)

at java.awt.Window.dispatchEventImpl(Window.java:2719)

at java.awt.Component.dispatchEvent(Component.java:4687)

at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:723)

at java.awt.EventQueue.access$200(EventQueue.java:103)

at java.awt.EventQueue$3.run(EventQueue.java:682)

at java.awt.EventQueue$3.run(EventQueue.java:680)

at java.security.AccessController.doPrivileged(Native Method)

at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)

at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)

at java.awt.EventQueue$4.run(EventQueue.java:696)

at java.awt.EventQueue$4.run(EventQueue.java:694)

at java.security.AccessController.doPrivileged(Native Method)

at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)

at java.awt.EventQueue.dispatchEvent(EventQueue.java:693)

at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:244)

at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:163)

at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:151)

at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:147)

at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:139)

at java.awt.EventDispatchThread.run(EventDispatchThread.java:97)

</blockquote>

o que está errado?

5 Respostas

pmlm

Tens de usar um alias para a coluna.

... sum(quantidade) as quantidade, ...

Mas, ainda assim, essa query vai dar erro. Tens de fazer group by por todos os campos que não são SUM

H

deixei assim:

String SQL = "Select data,codigo,descricao,ValorUnitario,porcentagem, as quantidade, remuneracao from RegistroR1 "
                        + "Where Data BETWEEN '2012-12-01 ' and '2012-12-15' "
                        + "GROUP by data, codigo, descricao, ValorUnitario, porcentagem "
                        + "order by data;";

e da o seguinte erro:

com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'as quantidade, remuneracao from RegistroR1 Where Data BETWEEN '2012-12-01 ' and ' at line 1

também tentei assim, mas não junta o grupo…

String SQL = "Select data,codigo,descricao,ValorUnitario,porcentagem,sum(quantidade) as quantidade, remuneracao from RegistroR1 "
                        + "Where Data BETWEEN '2012-12-01 ' and '2012-12-15' "
                        + "GROUP by data, codigo, descricao, ValorUnitario, porcentagem "
                        + "order by data;";

como a se a Syntax estaria errado qual linha seguir?

pmlm

O primeiro caso está obviamente errado. No segundo falta a remuneracao no GROUP BY.

tsartori
String SQL = "Select data,codigo,descricao,ValorUnitario,porcentagem,sum(quantidade) as quantidade, remuneracao from RegistroR1 "  
                        + "Where Data BETWEEN '2012-12-01 ' and '2012-12-15' "  
                        + "GROUP by data, codigo, descricao, ValorUnitario, porcentagem, remuneracao "  
                        + "order by data";
H

opa vlw a ajuda String SQL = "Select data,codigo,descricao,ValorUnitario,porcentagem, sum(quantidade) as quantidadeTotal, sum(remuneracao) as remuneracaoTotal from RegistroR1 " + "Where Data BETWEEN '2012-12-01 ' and '2012-12-15' " + "GROUP by codigo " + "order by data;";

dessa forma funciona que é uma beleza pois o unico codigo terá a mesma descricao, valorUnitario,porncetagem o estava ocorrendo pois o Group tava by data, ai ele tava separando ao inves de juntar rss vlw a atencao dada

Criado 10 de dezembro de 2012
Ultima resposta 10 de dez. de 2012
Respostas 5
Participantes 3