Ir para conteúdo
Fórum Script Brasil
  • 0

Comparação De Valore ( Com Loop )


ViniciusJau

Pergunta

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 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

  • 0

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

  • 0

ele me deu esse erro..

Unknown table 'Metas' in group statement

mais 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, mes

tabela previstoxrealizado = num_auto, Central, data, realizado, comentario

pelo 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

  • 0

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

  • 0

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 Then

Do until rs.eof

%>

<% Response.write Round(Rs("percentual"), 2) & "%" & rs("central") %>

<%  rs.MoveNext

  Loop

  End if

%>

a minha pagina fica em branco... ohmy.gif

acho que o problema agora é meu loop

Link para o comentário
Compartilhar em outros sites

  • 0

<%

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 Then

Do 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

  • 0

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 percentual

Pegar 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 entendi

where 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

  • 0

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 percentual

metas.central, metas.mes seleciona os campos: central (tabela metas) e mes (tabela metas)

from previstoxrealizado, metas informa quais tabelas serão usadas na consulta

where 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ções

tendeu??

Link para o comentário
Compartilhar em outros sites

  • 0
um... entendi.. então a comprarção na verdade é feita qunado você usa o where não é? ?? rolleyes.gif

SIM!!!

Da pra fazer miséria usando instruções SQL wink.gif

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

  • 0

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 Jau

32,68% Apae Jau

23,06% Apae Jau

28,4% Apae Fernandópolis

42,12% Apae Fernandópolis

20,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... dry.gif vou fuçar no where aqui pra ver oque dá huauha

Link para o comentário
Compartilhar em outros sites

  • 0
tá aparecendo tipo assim ó:

0,52% Apae Ibiporã

1,73% Apae Ibiporã

4,25% Apae Jau

32,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, 1

porém não estou conseguindo colocar ela nessa parte do codigo...: dry.gif

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

  • 0

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

  • 0

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

  • 0

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

  • 0

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 assim

CENTRAL DATA

apae jaú 21/03

apae jaú 20/03

apae SP 20/03

apae jaú 19/03

apae SP 19/03

apae SP 18/03

se 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... :/

blink.gif

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.... unsure.gif

Link para o comentário
Compartilhar em outros sites

  • 0

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

Visitante
Este tópico está impedido de receber novos posts.


  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      651,8k
×
×
  • Criar Novo...