ViniciusJau Postado Março 14, 2005 Denunciar Share Postado Março 14, 2005 e ai pessoal... tenho seguinte codigo...<%set rs1 = objConnection.Execute("SELECT * FROM previstoxrealizado WHERE mes='Março/05' AND Central='Apae Jaú' ORDER BY Data Desc LIMIT 0, 1 ") %><%set rs2 = objConnection.Execute("SELECT * FROM metas WHERE mes='Março/05' AND Central='Apae Jaú' LIMIT 0, 1 ")%><%total = rs1("Realizado") *100 / rs2("vlr_meta") %><% =Round(total, 2)%> % <%=rs1("central")%>ele faz o seguinte... pega o ultimo valor da tabela previstoxrealizado pela ultima data do banco ... e divide pelo valor da meta .... eu queria saber como eu poderia fazer para ele exibir todos os registros do mes... numa ordem....ex.22% Apae Jaú20% Apae Cambé18% Apae São Pauloeu teria que usar loop mais eu não sei como eu faço para comparar o valor Link para o comentário Compartilhar em outros sites More sharing options...
0 cyberalexxx Postado Março 14, 2005 Denunciar Share Postado Março 14, 2005 tenta assim:<% set rs = objConnection.Execute("SELECT (previstoxrealizado.realizado * 100 / metas.vlr_meta) as percentual, metas.central, metas.mes from previstoxrealizado, metas where previstoxrealizado.central = metas.central and previstoxrealizado.mes = metas.mes and metas.mes = 'Março/2005' Group by Metas.Central") Response.write Round(Rs("percentual"), 2) & "%" & rs("central") %> Link para o comentário Compartilhar em outros sites More sharing options...
0 ViniciusJau Postado Março 14, 2005 Autor Denunciar Share Postado Março 14, 2005 ele me deu esse erro..Unknown table 'Metas' in group statementmais a tabela metas existe no meu bd...mais deixa eu tentar entender ( hehe preciso quebrar a cabeça um pouco pra aprender )quando você escreve assim: metas.mes você etsá querendo dizer : tabela= metas campo= mes é isso ??a estrutura do meu cd está assim:Tabela metas = num_auto, Central, vlr_meta, mestabela previstoxrealizado = num_auto, Central, data, realizado, comentariopelo que entendi ele está procurando um campo metas dentro da minha tabalha previstoxrealizado ...o que o Group by faz ?? Link para o comentário Compartilhar em outros sites More sharing options...
0 cyberalexxx Postado Março 14, 2005 Denunciar Share Postado Março 14, 2005 retire o group by e v c funciona.<% set rs = objConnection.Execute("SELECT (previstoxrealizado.realizado * 100 / metas.vlr_meta) as percentual, metas.central, metas.mes from previstoxrealizado, metas where previstoxrealizado.central = metas.central and previstoxrealizado.mes = metas.mes and metas.mes = 'Março/2005' ") Response.write Round(Rs("percentual"), 2) & "%" & rs("central") %> Link para o comentário Compartilhar em outros sites More sharing options...
0 ViniciusJau Postado Março 14, 2005 Autor Denunciar Share Postado Março 14, 2005 estranho cara..... ficou em branco.....olha só como tá meu codigo.:<%set rs = objConnection.Execute("SELECT (previstoxrealizado.realizado * 100 / metas.vlr_meta) as percentual, metas.central, metas.mes from previstoxrealizado, metas where previstoxrealizado.central = metas.central and previstoxrealizado.mes = metas.mes and metas.mes = 'Março/2005' ")If not rs.EOF ThenDo until rs.eof%><% Response.write Round(Rs("percentual"), 2) & "%" & rs("central") %><% rs.MoveNext Loop End if%>a minha pagina fica em branco... acho que o problema agora é meu loop Link para o comentário Compartilhar em outros sites More sharing options...
0 cyberalexxx Postado Março 14, 2005 Denunciar Share Postado Março 14, 2005 <%set rs = objConnection.Execute("SELECT (previstoxrealizado.realizado * 100 / metas.vlr_meta) as percentual, metas.central, metas.mes from previstoxrealizado, metas where previstoxrealizado.central = metas.central and previstoxrealizado.mes = metas.mes and metas.mes = 'Março/05' ")If not rs.EOF ThenDo until rs.eof%><% Response.write Round(Rs("percentual"), 2) & "%" & rs("central") %><% rs.MoveNext Loop End if%>Eu coloquei 2005 mais acho q no seu banco esta 05 Link para o comentário Compartilhar em outros sites More sharing options...
0 ViniciusJau Postado Março 14, 2005 Autor Denunciar Share Postado Março 14, 2005 Eu coloquei 2005 mais acho q no seu banco esta 05 legal ..deu certo hehe mais dai perde a graça...fucionou mais eu num entendi quase nada .... o bom é que ficou tudo em um select só.... Link para o comentário Compartilhar em outros sites More sharing options...
0 cyberalexxx Postado Março 14, 2005 Denunciar Share Postado Março 14, 2005 o q voce não entendeu?? Link para o comentário Compartilhar em outros sites More sharing options...
0 ViniciusJau Postado Março 14, 2005 Autor Denunciar Share Postado Março 14, 2005 essa aqui:("SELECT (previstoxrealizado.realizado * 100 / metas.vlr_meta) as percentual, metas.central, metas.mes from previstoxrealizado, metas where previstoxrealizado.central = metas.central and previstoxrealizado.mes = metas.mes and metas.mes = 'Março/05' ")deixa eu ver se entendi:("SELECT (previstoxrealizado.realizado * 100 / metas.vlr_meta) as percentualPegar tabela previstoxrealizado campo realizado e multiplicar por 100 e dividir por tabela metas campo vlr_meta que é porcentagem....metas.central, metas.mes from previstoxrealizado,essa parte não entendiwhere previstoxrealizado.central = metas.central and previstoxrealizado.mes = metas.mes and metas.mes = 'Março/05' ")tabela previstoxrealizado campo central igual tabela meta campos central tabela previstoxrealizado campo mes é igual tabela meta campo mes e esse ultimo é igual a março/05 .. ( o where nesse caso funciona como uma condição ?? ) Link para o comentário Compartilhar em outros sites More sharing options...
0 cyberalexxx Postado Março 14, 2005 Denunciar Share Postado Março 14, 2005 como diria "jack o estripador" vamos por partes:SELECT (previstoxrealizado.realizado * 100 / metas.vlr_meta) as percentual, multiplica o valor do campo realizado da tabela previstoxrealizado por 100 e depois divide pelo vampo vlr_meta da tabela metas e joga o resultado no campo percentualmetas.central, metas.mes seleciona os campos: central (tabela metas) e mes (tabela metas)from previstoxrealizado, metas informa quais tabelas serão usadas na consultawhere previstoxrealizado.central = metas.central o campo central deve ter o mesmo valor nas tabelas previstoxrealizado e metas and previstoxrealizado.mes = metas.mes o campo mes deve ter o mesmo valor nas tabelas previstoxrealizado e metas and metas.mes = 'Março/05' aki voce informa de qual mes voce quer as informaçõestendeu?? Link para o comentário Compartilhar em outros sites More sharing options...
0 ViniciusJau Postado Março 14, 2005 Autor Denunciar Share Postado Março 14, 2005 um... entendi.. então a comprarção na verdade é feita qunado você usa o where não é? ?? Link para o comentário Compartilhar em outros sites More sharing options...
0 cyberalexxx Postado Março 14, 2005 Denunciar Share Postado Março 14, 2005 um... entendi.. então a comprarção na verdade é feita qunado você usa o where não é? ?? SIM!!!Da pra fazer miséria usando instruções SQL Link para o comentário Compartilhar em outros sites More sharing options...
0 DackAle Postado Março 14, 2005 Denunciar Share Postado Março 14, 2005 um... entendi.. então a comprarção na verdade é feita qunado você usa o where não é? ?? SIM!!!Da pra fazer miséria usando instruções SQL com certeza... recomendo que procure mais sobre instruções de SQL, você por exemplo usar funções VB dentro de um WHERE e já pegar certinho o que você quer... alem do LIKE, BETWEEN, IN, NOT e por ae vai =) Link para o comentário Compartilhar em outros sites More sharing options...
0 ViniciusJau Postado Março 14, 2005 Autor Denunciar Share Postado Março 14, 2005 nossa... agora que eu reparei.. ele não está peganod só do mes de março de 2005 hahuauh tá aparecendo um monte de vez .. acho que são dos meses passados....tá aparecendo tipo assim ó:0,52% Apae Ibiporã1,73% Apae Ibiporã24,83% Apae Ibiporã30,95% Apae Ibiporã4,25% Apae Jau32,68% Apae Jau23,06% Apae Jau28,4% Apae Fernandópolis42,12% Apae Fernandópolis20,17% Apae Fernandópolis dai eu coloquei assim:WHERE previstoxrealizado.central = metas.central and previstoxrealizado.mes = 'Março/05' AND metas.mes and metas.mes = 'Março/05' ")acrescentei a parte em vermelho...assim também:WHERE previstoxrealizado.central = metas.central and previstoxrealizado.mes and previstoxrealizado.mes = 'Março/05' = metas.mes and metas.mes = 'Março/05' ")e ele só fica em branco... vou fuçar no where aqui pra ver oque dá huauha Link para o comentário Compartilhar em outros sites More sharing options...
0 ViniciusJau Postado Março 16, 2005 Autor Denunciar Share Postado Março 16, 2005 tá aparecendo tipo assim ó:0,52% Apae Ibiporã1,73% Apae Ibiporã4,25% Apae Jau32,68% Apae Jau já entendi porque aparece desse jeito.... o que aconteceu foi o seguinte... a tabela previstoxrealizado tem um registro para cada dia do mes e ele está pegando todos os dias.. quando eu tinhas duas sql eu usava assim para pegar apenas o ultimo dia que estivece no BD:WHERE mes='Março/05' ORDER BY Data Desc LIMIT 0, 1porém não estou conseguindo colocar ela nessa parte do codigo...: set rs = objConnection.Execute("SELECT (previstoxrealizado.realizado * 100 / metas.vlr_meta) AS PERCENTUAL, metas.central, metas.mes FROM previstoxrealizado, metas WHERE previstoxrealizado.central = metas.central and previstoxrealizado.mes = metas.mes and metas.mes = 'Março/05' ")alguém consegue me dar uma luz ?? Link para o comentário Compartilhar em outros sites More sharing options...
0 cyberalexxx Postado Março 16, 2005 Denunciar Share Postado Março 16, 2005 mais uma construção maluka, tenta ai:SELECT max(data), (previstoxrealizado.realizado * 100 / metas.vlr_meta) AS PERCENTUAL, metas.central, metas.mes FROM previstoxrealizado, metas WHERE previstoxrealizado.central = metas.central and previstoxrealizado.mes = metas.mes and metas.mes = 'Março/2005' Group by central Link para o comentário Compartilhar em outros sites More sharing options...
0 ViniciusJau Postado Março 16, 2005 Autor Denunciar Share Postado Março 16, 2005 ixe.. sem chance.... o max(data) não funciona no meu BD a versão dele é meio velhinha (4.0.18) por isso eu tava usando o limit Link para o comentário Compartilhar em outros sites More sharing options...
0 cyberalexxx Postado Março 21, 2005 Denunciar Share Postado Março 21, 2005 Acho q vi uma luz no fim do tunel.O numero de centrais é fixo???todas as centrais terão um lançamento no ultimo dia dos mes???Caso as respostas das 2 perguntas sejam sim acho q da pra fazer assim:supondo q voce tenha 5 centrais:SELECT (previstoxrealizado.realizado * 100 / metas.vlr_meta) AS PERCENTUAL, metas.central, metas.mes FROM previstoxrealizado, metas WHERE previstoxrealizado.central = metas.central and previstoxrealizado.mes = metas.mes and metas.mes = 'Março/05' order by data desc limit 0,5 Link para o comentário Compartilhar em outros sites More sharing options...
0 cyberalexxx Postado Março 21, 2005 Denunciar Share Postado Março 21, 2005 brainstorm:SELECT (previstoxrealizado.realizado * 100 / metas.vlr_meta) AS PERCENTUAL, metas.central, metas.mes FROM previstoxrealizado, metas WHERE previstoxrealizado.central = metas.central and previstoxrealizado.mes = metas.mes and previstoxrealizado.data = '2005-03-31' neste caso voce informa qual o ultimo dia dos mes Link para o comentário Compartilhar em outros sites More sharing options...
0 ViniciusJau Postado Março 24, 2005 Autor Denunciar Share Postado Março 24, 2005 Acho q vi uma luz no fim do tunel.O numero de centrais é fixo???todas as centrais terão um lançamento no ultimo dia dos mes???Caso as respostas das 2 perguntas sejam sim acho q da pra fazer assim:supondo q voce tenha 5 centrais:SELECT (previstoxrealizado.realizado * 100 / metas.vlr_meta) AS PERCENTUAL, metas.central, metas.mes FROM previstoxrealizado, metas WHERE previstoxrealizado.central = metas.central and previstoxrealizado.mes = metas.mes and metas.mes = 'Março/05' order by data desc limit 0,5 o numero de centrais é fixo.. porém... a ordem é aleatoria .. eu posso ter assimCENTRAL DATAapae jaú 21/03apae jaú 20/03apae SP 20/03apae jaú 19/03apae SP 19/03apae SP 18/03se eu fizece isso acho que ele pegaria duas veses a apae de jáu não é ?? eu atualizei o BD e tentei usar o max data e ele me retornou dois registros.. ou seja ele só pegou as data de maior valor se fosse uma tabela igual essa que eu coloquei ai em cima também não iria funcionar... :/ mais eu acho que poderia fazer essa do ultimo dia do mes.. talvez se eu criar uma função pra ele pegar a ultima data.... Link para o comentário Compartilhar em outros sites More sharing options...
0 ViniciusJau Postado Março 28, 2005 Autor Denunciar Share Postado Março 28, 2005 huauha té q enfim consegui:<% set rs1 = objConnection.execute("SELECT central,data,MAX(realizado) FROM previstoxrealizado WHERE mes='março/05' GROUP BY central") If not rs1.EOF Then do while not rs1.eof %> <% set rs2 = objConnection.Execute("SELECT * FROM metas WHERE mes='Março/05' AND central='" & rs1("central") & "' LIMIT 0, 1 ") If not rs2.EOF Then %> <% total = rs1("MAX(realizado)") *100 / rs2("vlr_meta") %> <% =Round(total, 2)%> % <%=rs1("central")%> <br><% End if rs1.MoveNext loop End if objConnection.Close() %> Link para o comentário Compartilhar em outros sites More sharing options...
0 cyberalexxx Postado Março 29, 2005 Denunciar Share Postado Março 29, 2005 Que bom q deu certo, mais ainda acho q da pra fazer tudo em um só select. Link para o comentário Compartilhar em outros sites More sharing options...
0 ViniciusJau Postado Março 29, 2005 Autor Denunciar Share Postado Março 29, 2005 também acho cara..... é meu proximo passo huauhapode fechar o top ! Link para o comentário Compartilhar em outros sites More sharing options...
0 cyberalexxx Postado Março 29, 2005 Denunciar Share Postado Março 29, 2005 também acho cara..... é meu proximo passo huauhapode fechar o top ! ok!!Fechado!! Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
ViniciusJau
e ai pessoal... tenho seguinte codigo...
ele faz o seguinte... pega o ultimo valor da tabela previstoxrealizado pela ultima data do banco ... e divide pelo valor da meta ....
eu queria saber como eu poderia fazer para ele exibir todos os registros do mes... numa ordem....
ex.
22% Apae Jaú
20% Apae Cambé
18% Apae São Paulo
eu teria que usar loop mais eu não sei como eu faço para comparar o valor
Link para o comentário
Compartilhar em outros sites
23 respostass a esta questão
Posts Recomendados