Consulta SQL com base de dados MySQL
Olá pessoal,
O q está errado nesta consulta?
Quando mando ativar a consulta surge a mensagem:
Como posso corrigir isso?
Grato,
Ilano.
O q está errado nesta consulta?
SELECT DISTINCTROW TB_Avaliacao.AnoDaAvaliacao, TB_Avaliacao.NomeDaUnidade, TB_Avaliacao.CodigoDoCurso, TB_Avaliacao.NomeDoCurso, TB_Avaliacao.NomeDoProfessor, TB_Avaliacao.NomeDaDisciplina, First(TB_DetalhesDaAvaliacao.CodigoDaPergunta) AS CodPergunta, First(TB_DetalhesDaAvaliacao.CodigoDaResposta) AS CodResposta, Sum(TB_DetalhesDaAvaliacao.Contador) AS SomaDeNumero, (([Soma De Numero]*100)/Sum([Contador])/100) AS Percentual, ([Soma de Numero]*[CodigoDaResposta]) AS ValorGeral, TB_DetalhesDaAvaliacao.CodigoDaResposta, TB_DetalhesDaAvaliacao.Resposta, TB_DetalhesDaAvaliacao.Pergunta
FROM TB_Avaliacao INNER JOIN TB_DetalhesDaAvaliacao ON TB_Avaliacao.CodigoDaAvaliacao = TB_DetalhesDaAvaliacao.CodigoDaAvaliacao
GROUP BY TB_Avaliacao.AnoDaAvaliacao, TB_Avaliacao.NomeDaUnidade, TB_Avaliacao.CodigoDoCurso, TB_Avaliacao.NomeDoCurso, TB_Avaliacao.NomeDoProfessor, TB_Avaliacao.NomeDaDisciplina, TB_DetalhesDaAvaliacao.CodigoDaResposta, TB_DetalhesDaAvaliacao.Resposta, TB_DetalhesDaAvaliacao.Pergunta
HAVING First(TB_DetalhesDaAvaliacao.CodigoDaResposta)>0;
Quando mando ativar a consulta surge a mensagem:
You have an error in your SQL syntax near ´(TB_DetalhesDaAvaliacao.CodigoDaPergunta) AS CodPergunta, First(TB_DetalhesDaAva´ at line 1.
Como posso corrigir isso?
Grato,
Ilano.
Ilanocf
Curtidas 0
Respostas
Ilanocf
12/07/2004
:roll:
GOSTEI 0
Ilanocf
12/07/2004
Olá pessoal,
Mudei o código acima para este:
O problema é q não está exibindo os dados, embora o componente aceite alterar a propriedade [b:5374737264]Active[/b:5374737264] para [b:5374737264]True[/b:5374737264].
Mudei o código acima para este:
SELECT DISTINCTROW TB_Avaliacao.AnoDaAvaliacao, TB_Avaliacao.NomeDaUnidade, TB_Avaliacao.CodigoDoCurso, TB_Avaliacao.NomeDoCurso, TB_Avaliacao.NomeDoProfessor, TB_Avaliacao.NomeDaDisciplina, ´First TB_DetalhesDaAvaliacao.CodigoDaPergunta´ AS CodPergunta, ´First TB_DetalhesDaAvaliacao.CodigoDaResposta´ AS CodResposta, ´Sum TB_DetalhesDaAvaliacao.Contador´ AS SomaDeNumero, ´((Soma De Numero*100)/Sum([Contador])/100)´ AS Percentual, ´(Soma de Numero * CodigoDaResposta)´ AS ValorGeral, TB_DetalhesDaAvaliacao.CodigoDaResposta, TB_DetalhesDaAvaliacao.Resposta, TB_DetalhesDaAvaliacao.Pergunta
FROM TB_Avaliacao INNER JOIN TB_DetalhesDaAvaliacao ON TB_Avaliacao.CodigoDaAvaliacao = TB_DetalhesDaAvaliacao.CodigoDaAvaliacao
GROUP BY TB_Avaliacao.AnoDaAvaliacao, TB_Avaliacao.NomeDaUnidade, TB_Avaliacao.CodigoDoCurso, TB_Avaliacao.NomeDoCurso, TB_Avaliacao.NomeDoProfessor, TB_Avaliacao.NomeDaDisciplina, TB_DetalhesDaAvaliacao.CodigoDaResposta, TB_DetalhesDaAvaliacao.Resposta, TB_DetalhesDaAvaliacao.Pergunta
HAVING ´First TB_DetalhesDaAvaliacao.CodigoDaResposta > 0´;
O problema é q não está exibindo os dados, embora o componente aceite alterar a propriedade [b:5374737264]Active[/b:5374737264] para [b:5374737264]True[/b:5374737264].
GOSTEI 0
Nildo
12/07/2004
Se não está exibindo é porque não retornou nenhum registro :wink:
GOSTEI 0
Ilanocf
12/07/2004
Refiz o DBGrid e agora o q está aparecendo é isto:
Se a imagem não abrir o link é este: [url]http://geocities.yahoo.com.br/linkotecabr/imagem.jpg[/url]
Se a imagem não abrir o link é este: [url]http://geocities.yahoo.com.br/linkotecabr/imagem.jpg[/url]
GOSTEI 0
Nildo
12/07/2004
a imagem nao exibe em nenhum dos dois casos
GOSTEI 0
Ilanocf
12/07/2004
Então tente novamente neste link: [url]http://geocities.yahoo.com.br/linkotecabr/[/url]
GOSTEI 0
Nildo
12/07/2004
É que você colocou alguns campos entre aspas, remova-as!
GOSTEI 0
Ilanocf
12/07/2004
Esse é o problema Nildo. Se eu remover as aspas surge a mensagem:
Não sei mais o q fazer!
You have an error in your SQL syntax near ´(TB_DetalhesDaAvaliacao.CodigoDaPergunta) AS CodPergunta, First(TB_DetalhesDaAva´ at line 1.
Não sei mais o q fazer!
GOSTEI 0
Ilanocf
12/07/2004
:(
GOSTEI 0
Nildo
12/07/2004
Tira o First para ver se o problema não está nele
GOSTEI 0
Ilanocf
12/07/2004
Nildo,
Fiz como vc disse:
Quando mandei ativar a consulta surgiu a mensagem:
Depois alterei para o seguinte:
E quando ativei a consulta a mensagem alterou para:
Se eu colocar somente assim:
Dá tudo certo, mas preciso daquela consulta completa para mostrar os dados q preciso.
Fiz como vc disse:
SELECT DISTINCTROW TB_Avaliacao.AnoDaAvaliacao, TB_Avaliacao.NomeDaUnidade, TB_Avaliacao.CodigoDoCurso,
TB_Avaliacao.NomeDoCurso, TB_Avaliacao.NomeDoProfessor, TB_Avaliacao.NomeDaDisciplina,
(TB_DetalhesDaAvaliacao.CodigoDaPergunta|) AS CodPergunta,
(TB_DetalhesDaAvaliacao.CodigoDaResposta) AS CodResposta,
Sum(TB_DetalhesDaAvaliacao.Contador) AS SomaDeNumero,((SomaDeNumero*100)/Sum(Contador)/100) AS Percentual,
(SomaDeNumero * CodigoDaResposta) AS ValorGeral, TB_DetalhesDaAvaliacao.CodigoDaResposta, TB_DetalhesDaAvaliacao.Resposta,
TB_DetalhesDaAvaliacao.Pergunta, TB_DetalhesDaAvaliacao.CodigoDaPergunta
FROM TB_Avaliacao INNER JOIN TB_DetalhesDaAvaliacao ON TB_Avaliacao.CodigoDaAvaliacao = TB_DetalhesDaAvaliacao.CodigoDaAvaliacao
GROUP BY TB_Avaliacao.AnoDaAvaliacao, TB_Avaliacao.NomeDaUnidade, TB_Avaliacao.CodigoDoCurso, TB_Avaliacao.NomeDoCurso,
TB_Avaliacao.NomeDoProfessor, TB_Avaliacao.NomeDaDisciplina, TB_DetalhesDaAvaliacao.CodigoDaResposta,
TB_DetalhesDaAvaliacao.Resposta, TB_DetalhesDaAvaliacao.Pergunta, TB_DetalhesDaAvaliacao.CodigoDaPergunta
HAVING TB_DetalhesDaAvaliacao.CodigoDaPergunta = 1;
Quando mandei ativar a consulta surgiu a mensagem:
You have an error in your SQL syntax near´) AS CodPergunta, (TB_DetalhesDaAvaliacao.CodigoDaResposta) AS CodResposta, Sum(´ at line 1.
Depois alterei para o seguinte:
[color=red:fb46cac723]SELECT DISTINCTROW TB_Avaliacao.AnoDaAvaliacao, TB_Avaliacao.NomeDaUnidade, TB_Avaliacao.CodigoDoCurso, TB_Avaliacao.NomeDoCurso, TB_Avaliacao.NomeDoProfessor, TB_Avaliacao.NomeDaDisciplina, {First(TB_DetalhesDaAvaliacao.CodigoDaPergunta)} AS PrimeiroDeCodigoDaPergunta, {First(TB_DetalhesDaAvaliacao.CodigoDaResposta)} AS PrimeiroDeCodigoDaResposta, Sum(TB_DetalhesDaAvaliacao.Contador) AS SomaDeNumero, ((SomaDeNumero*100)/{Sum(Contador)}/100) AS Percentual, (Soma de Numero*CodigoDaResposta) AS ValorGeral, TB_DetalhesDaAvaliacao.CodigoDaResposta, TB_DetalhesDaAvaliacao.Resposta, TB_DetalhesDaAvaliacao.Pergunta, TB_DetalhesDaAvaliacao.CodigoDaPergunta
FROM TB_Avaliacao INNER JOIN TB_DetalhesDaAvaliacao ON TB_Avaliacao.CodigoDaAvaliacao = TB_DetalhesDaAvaliacao.CodigoDaAvaliacao
GROUP BY TB_Avaliacao.AnoDaAvaliacao, TB_Avaliacao.NomeDaUnidade, TB_Avaliacao.CodigoDoCurso, TB_Avaliacao.NomeDoCurso, TB_Avaliacao.NomeDoProfessor, TB_Avaliacao.NomeDaDisciplina, TB_DetalhesDaAvaliacao.CodigoDaResposta, TB_DetalhesDaAvaliacao.Resposta, TB_DetalhesDaAvaliacao.Pergunta, TB_DetalhesDaAvaliacao.CodigoDaPergunta
HAVING {(((First(TB_DetalhesDaAvaliacao.CodigoDaResposta))>0)} AND TB_DetalhesDaAvaliacao.CodigoDaPergunta=1;[/color:fb46cac723]
E quando ativei a consulta a mensagem alterou para:
You have an error in your SQL syntax near ´Sum(TB_DetalhesDaAvaliacao.Contador)} AS SomaDeNumero, (([SomaDeNumero]*100)´ at line 1.
Se eu colocar somente assim:
SELECT {First(TB_Avaliacao.CodigoDaAvaliacao)} AS PrimeiroDeCodigoDaAvaliacao
FROM TB_Avaliacao;
Dá tudo certo, mas preciso daquela consulta completa para mostrar os dados q preciso.
GOSTEI 0
Ilanocf
12/07/2004
:roll:
GOSTEI 0
Paulo_amorim
12/07/2004
Olá
Sugiro que vc comece do nada:
pega um SELECT campo FROM tabela...
testa, funciona, blz..
vai implementando pouco a pouco a Query, assim vc tem a dimensão de onde REALMENTE está o erro...
Assim fica bem mais facill...eu já peguei erros por causa disso
Ah, seria bom organizar os campos da Query, assim fica mais fácil de visualizar tudo :wink:
Espero que ajude
Até+
Sugiro que vc comece do nada:
pega um SELECT campo FROM tabela...
testa, funciona, blz..
vai implementando pouco a pouco a Query, assim vc tem a dimensão de onde REALMENTE está o erro...
Assim fica bem mais facill...eu já peguei erros por causa disso
Ah, seria bom organizar os campos da Query, assim fica mais fácil de visualizar tudo :wink:
Espero que ajude
Até+
GOSTEI 0
Ilanocf
12/07/2004
Paulo_Amorim,
Fiz como vc havia dito e agora minha consulta está assim:
O problema é q as colunas Percentua e ValorGeral estão igual a zero e tenho cadastrados 10 registros de teste, o q já poderia haver algum valor naquelas duas colunas, pois em cada registro existem 10 questões, somando um total de 40 questões. O q posso fazer mais??????
Fiz como vc havia dito e agora minha consulta está assim:
SELECT DISTINCTROW TB_Avaliacao.AnoDaAvaliacao, TB_Avaliacao.NomeDaUnidade, TB_Avaliacao.CodigoDoCurso,
TB_Avaliacao.NomeDoCurso, TB_Avaliacao.NomeDoProfessor, TB_Avaliacao.NomeDaDisciplina,
{First (TB_DetalhesDaAvaliacao.CodigoDaPergunta)} AS CodPergunta, {First(TB_DetalhesDaAvaliacao.CodigoDaResposta)} AS CodResposta,
Sum(TB_DetalhesDaAvaliacao.Contador) AS SomaDeNumero, (´SomaDeNumero´*100/Sum(Contador)) AS Percentual,
(´SomaDeNumero´ * CodigoDaResposta) AS ValorGeral, TB_DetalhesDaAvaliacao.CodigoDaResposta, TB_DetalhesDaAvaliacao.Resposta,
TB_DetalhesDaAvaliacao.Pergunta, TB_DetalhesDaAvaliacao.CodigoDaPergunta
FROM TB_Avaliacao INNER JOIN TB_DetalhesDaAvaliacao ON TB_Avaliacao.CodigoDaAvaliacao = TB_DetalhesDaAvaliacao.CodigoDaAvaliacao
GROUP BY TB_Avaliacao.AnoDaAvaliacao, TB_Avaliacao.NomeDaUnidade, TB_Avaliacao.CodigoDoCurso, TB_Avaliacao.NomeDoCurso,
TB_Avaliacao.NomeDoProfessor, TB_Avaliacao.NomeDaDisciplina, TB_DetalhesDaAvaliacao.CodigoDaResposta,
TB_DetalhesDaAvaliacao.Resposta, TB_DetalhesDaAvaliacao.Pergunta, TB_DetalhesDaAvaliacao.CodigoDaPergunta;
O problema é q as colunas Percentua e ValorGeral estão igual a zero e tenho cadastrados 10 registros de teste, o q já poderia haver algum valor naquelas duas colunas, pois em cada registro existem 10 questões, somando um total de 40 questões. O q posso fazer mais??????
GOSTEI 0
Ilanocf
12/07/2004
EUREKA!!!!!! :P
Finalmente consegui terminar a consulta!!!!!!
Valeu Galera! 8)
Finalmente consegui terminar a consulta!!!!!!
SELECT DISTINCTROW TB_Avaliacao.CodigoDoProfessor, TB_Avaliacao.NomeDoProfessor, TB_Avaliacao.NomeDoCurso,
TB_Avaliacao.Periodo, TB_Detalhes.CodigoDaPergunta, TB_Detalhes.Pergunta, TB_Detalhes.CodigoDaResposta,
TB_Detalhes.Resposta, Sum(TB_Detalhes.Contador) AS SomaDeContador,
(Sum(TB_Detalhes.Contador) * TB_Detalhes.CodigoDaResposta) AS ValorGeral, (Sum(TB_Detalhes.Contador)*100/Sum(TB_Detalhes.Contador)) AS Percentual
FROM TB_Avaliacao INNER JOIN TB_Detalhes ON TB_Avaliacao.CodigoDaAvaliacao = TB_Detalhes.CodigoDaAvaliacao
GROUP BY TB_Avaliacao.CodigoDoProfessor, TB_Avaliacao.NomeDoProfessor, TB_Avaliacao.NomeDoCurso,
TB_Avaliacao.Periodo, TB_Detalhes.CodigoDaPergunta, TB_Detalhes.Pergunta, TB_Detalhes.CodigoDaResposta,
TB_Detalhes.Resposta
HAVING TB_Avaliacao.CodigoDoProfessor=:P1 AND TB_Avaliacao.Periodo=:P2 AND TB_Detalhes.CodigoDaPergunta=:P3;
Valeu Galera! 8)
GOSTEI 0