ivomar Posted July 7, 2011 Report Share Posted July 7, 2011 Preciso de uma grande ajuda.Estou tendo que usar tabelas antigas em .DBF e não estou conseguindo testar os valores nulo já tentei:1-QUERY1.SQL('SELECT COD,NOME,SUM(ISNULL(VLR1,0)+SUM(ISNULL(VLR2,0) AS TOTAL FROM TABELA GROUP BY COD,NOME');2-QUERY1.SQL('SELECT COD,NOME,SUM(COALESCE(VLR1,0)+SUM(COALESCE(VLR2,0) AS TOTAL FROM TABELA GROUP BY COD,NOME');3-QUERY1.SQL('SELECT COD,NOME,SUM(IFNULL(VLR1,0)+SUM(IFNULL(VLR2,0) AS TOTAL FROM TABELA GROUP BY COD,NOME');4-QUERY1.SQL('SELECT COD,NOME,SUM(NVL(VLR1,0)+SUM(NVL(VLR2,0) AS TOTAL FROM TABELA GROUP BY COD,NOME');O ERRO É SEMPRE O MESMO "CAPABILITY NOT SUPPORTED"alguém tem uma dica???????????????Grato,Ivomar Quote Link to comment Share on other sites More sharing options...
0 Jhonas Posted July 7, 2011 Report Share Posted July 7, 2011 "CAPABILITY NOT SUPPORTED"Capacidade não suportadanão estou conseguindo testar os valores nulo SUM(ISNULL(VLR1,0)+SUM(ISNULL(VLR2,0) AS TOTALse o valor é nulo como voce quer soma-lo ?abraço Quote Link to comment Share on other sites More sharing options...
0 ivomar Posted July 7, 2011 Author Report Share Posted July 7, 2011 Favor não replicar o tópico, se não for acrescentar nada novo ... obrigadoeditado por Jhonas... 15:34hsEu não sei quem tem valor ou quem está nulo por exemplo:vr1=100,00vlr2=nullO TOTAL deverá ser = 100,00vlr1=nullvlr2=100,01o total deverá ser = 100,01vlr1=nullvlr2=nullo total deverá ser = 0,00 Quote Link to comment Share on other sites More sharing options...
0 Jhonas Posted July 7, 2011 Report Share Posted July 7, 2011 neste caso use assim:QUERY1.SQL('SELECT COD,NOME,SUM(VLR1)+SUM(VLR2) AS TOTAL FROM TABELA);abraço Quote Link to comment Share on other sites More sharing options...
0 ivomar Posted July 7, 2011 Author Report Share Posted July 7, 2011 Olá Jhonas,quando eu faço sum(vlr1)+sum(vlr2) se um dos dois campos estiver nulo o TOTAL será nulo. Quote Link to comment Share on other sites More sharing options...
0 Jhonas Posted July 7, 2011 Report Share Posted July 7, 2011 bem, vamos fazer um testefaça esse teste e veja os resultados:SELECT SUM( VLR1) AS TOT1 FROM TABELA TOT1 deverá apresentar um valor, mesmo tendo valores null ( a não ser que todos os registros sejam null ) SELECT SUM( VLR2) AS TOT2 FROM TABELATOT2 deverá apresentar um valor, mesmo tendo valores null ( a não ser que todos os registros sejam null )abraço Quote Link to comment Share on other sites More sharing options...
0 ivomar Posted July 7, 2011 Author Report Share Posted July 7, 2011 Fiz os teste e ficou assim:vlr1=100,00vlr2=nullTOTAL=NULLQUERY1.SQL('SELECT SUM(VLR1)+SUM(VLR2) AS TOTAL .... Quote Link to comment Share on other sites More sharing options...
0 Jhonas Posted July 7, 2011 Report Share Posted July 7, 2011 não sei como voce esta fazendo, mas eu uso dessa maneira e funciona perfeitamente com mysql, interbase, firebird, paradox .... pode ser problema do DBFjá que voce esta usando QUERY1, clique com o botão direito do mouse no componente QUERY1 e selecione SQL Builder... é uma maneira mais facil de testar a clausula Select em cima das suas tabelasabraço Quote Link to comment Share on other sites More sharing options...
0 Alberto Mota Posted July 9, 2011 Report Share Posted July 9, 2011 (edited) Uso o select abaixo no sql server sem problemas. Quando for nulo coloca 0, caso contrário o próprio valor.SELECT prod, SUM(CASE WHEN dbo.tblvendadetalhes.vr = NULL THEN 0 ELSE dbo.tblvendadetalhes.vr END) AS totalFROM dbo.tblvendadetalhesGROUP BY prod Edited July 9, 2011 by Alberto Mota Quote Link to comment Share on other sites More sharing options...
Question
ivomar
Preciso de uma grande ajuda.
Estou tendo que usar tabelas antigas em .DBF e não estou conseguindo testar os valores nulo já tentei:
1-QUERY1.SQL('SELECT COD,NOME,SUM(ISNULL(VLR1,0)+SUM(ISNULL(VLR2,0) AS TOTAL FROM TABELA GROUP BY COD,NOME');
2-QUERY1.SQL('SELECT COD,NOME,SUM(COALESCE(VLR1,0)+SUM(COALESCE(VLR2,0) AS TOTAL FROM TABELA GROUP BY COD,NOME');
3-QUERY1.SQL('SELECT COD,NOME,SUM(IFNULL(VLR1,0)+SUM(IFNULL(VLR2,0) AS TOTAL FROM TABELA GROUP BY COD,NOME');
4-QUERY1.SQL('SELECT COD,NOME,SUM(NVL(VLR1,0)+SUM(NVL(VLR2,0) AS TOTAL FROM TABELA GROUP BY COD,NOME');
O ERRO É SEMPRE O MESMO "CAPABILITY NOT SUPPORTED"
alguém tem uma dica???????????????
Grato,
Ivomar
Link to comment
Share on other sites
8 answers to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.