Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Mr Crowley

EXECUTAR 4 querys sem sobrepor as as anteriores

Recommended Posts

--adimplentesSELECT     Cod_Mun AS Cidade, COUNT_BIG (N_Op_Imp) AS N_Contratos, SUM(Val_Op_Emp) AS Valor_TotalFROM         ContratosWHERE     (Linha_Final = 'A') AND (N_Pri_Pres = 0)GROUP BY Cod_MunORDER BY Cod_Mun--30 diasSELECT     Cod_Mun AS Cidade_30, COUNT_BIG (N_Op_Imp) AS N_Contratos_30, SUM(Val_Op_Emp) AS Valor_Total_30FROM         ContratosWHERE     (Linha_Final = 'A') AND (N_Pri_Pres > 0) AND (DATEDIFF(dd, Dat_Venc, GETDATE()) BETWEEN 1 AND 30)GROUP BY Cod_MunORDER BY Cod_Mun--31 ate 90 diasSELECT     Cod_Mun AS Cidade, COUNT_BIG (N_Op_Imp) AS N_Contratos, SUM(Val_Op_Emp) AS Valor_TotalFROM         ContratosWHERE     (Linha_Final = 'A') AND (N_Pri_Pres > 0) AND (DATEDIFF(dd, Dat_Venc, GETDATE()) BETWEEN 31 AND 90)GROUP BY Cod_MunORDER BY Cod_Mun--+90 diasSELECT     Cod_Mun AS Cidade, COUNT_BIG (N_Op_Imp) AS N_Contratos, SUM(Val_Op_Emp) AS Valor_TotalFROM         ContratosWHERE     (Linha_Final = 'A') AND (N_Pri_Pres > 0) AND (DATEDIFF(dd, Dat_Venc, GETDATE()) > 90)GROUP BY Cod_MunORDER BY Cod_Mun---------------------
como que eu faço essas 4 pesquizas em uma query so!

ai tem 4 e precisava fazer em uma so,dando a diferenca de inadimplentes

tao prontas as as querys dando os resultados certo,so que divididas!

 

 

<%@LANGUAGE="VBSCRIPT"%><% option explicit %><%session("senha")	=	69098398session("user")  =	"Crowley"dim conn  'variavel de conecção do banco de dadosdim conn1  'variavel de conecção do banco de dadosdim ors 	 'varialvel de banco de dadosdim ors1  'varialvel de banco de dadosredim qtd_res(400)'variavel que conta o numero de registros em uma pesquizaredim cidade(400)redim n_cont(400)redim valor(400)redim cidade_30(400)redim n_cont_30(400)redim valor_30(400)dim idim jdim adim 	 'variavel de selecao de adimplentesdim inad_30  'variavel de selecao de inadimplentes  ate 30 diasset conn = server.CreateObject("ADODB.connection")conn.open "Provider=SQLOLEDB.1;Password=" & session("senha") & ";Persist Security Info=True;User ID=" & session("user") & ";Initial Catalog=Financeiro;Data Source=CROWLEY\CROWLEY"adim = "SELECT     Cod_Mun AS Cidade, COUNT_BIG (N_Op_Imp) AS N_Contratos_Ad, SUM(Val_Op_Emp) AS Valor_Total_Ad 	 "adim = adim & "FROM Contratos	WHERE     (Linha_Final = 'A') AND (N_Pri_Pres = 0)          "adim = adim & "GROUP BY Cod_Mun ORDER BY Cod_Mun                  "set ors = server.CreateObject("ADODB.Recordset")ors.open adim, conn,3,3'qtd_res = ors.RecordCountset conn = server.CreateObject("ADODB.connection")conn.open "Provider=SQLOLEDB.1;Password=" & session("senha") & ";Persist Security Info=True;User ID=" & session("user") & ";Initial Catalog=Financeiro;Data Source=CROWLEY\CROWLEY"inad_30 = " SELECT Cod_Mun AS Cidade_30, COUNT_BIG (N_Op_Imp) AS N_Contratos_30, SUM(Val_Op_Emp) AS Valor_Total_30   	 "inad_30 = inad_30 & " FROM  Contratos                       	 "inad_30 = inad_30 & " WHERE     (Linha_Final = 'A') AND (N_Pri_Pres > 0) AND (DATEDIFF(dd, Dat_Venc, GETDATE()) BETWEEN 1 AND 30)	"inad_30 = inad_30 & " GROUP BY Cod_Mun ORDER BY Cod_Mun                    "set ors = server.CreateObject("ADODB.Recordset")ors.open inad_30, conn,3,3%>

ou como eu faço no asp pra executar essas 4 query sem sobrepor uma encima da outra

pq faço um e qdo faço a aoutra ele nao acha a caluna da anterior

 

bem seria essas as duvidas

se puder me ajudar!

faloe ai

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tente com 4 RecordSets, ao invéz de Set'ar sempre o mesmo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não, mude os nomes, você está sempre setando o mesmo, Ors, use nomes diferentes para eles.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não, mude os nomes, você está sempre setando o mesmo, Ors, use nomes diferentes para eles.

seria so mudaro ors

1 query ors

2 query ina30

3 query ina90

4 query ina91

por exemplo issso?

Compartilhar este post


Link para o post
Compartilhar em outros sites

inad_30 = " SELECT Cod_Mun AS Cidade_30, COUNT_BIG (N_Op_Imp) AS N_Contratos_30, SUM(Val_Op_Emp) AS Valor_Total_30   	 "inad_30 = inad_30 & " FROM  Contratos                       	 "inad_30 = inad_30 & " WHERE     (Linha_Final = 'A') AND (N_Pri_Pres > 0) AND (DATEDIFF(dd, Dat_Venc, GETDATE()) BETWEEN 1 AND 30)	"inad_30 = inad_30 & " GROUP BY Cod_Mun ORDER BY Cod_Mun                    "set inad = server.CreateObject("ADODB.Recordset")inad.open inad_30, conn,3,3....  <% do while not ors.eof %>    <td><%response.Write(ors.fields("cidade")) %></td>    <td></td>    <td><% response.Write(inad.fields("cidade_30")) %></td>    <td></td>    <td>></td>    <td>** contr31 90 </td>    <td>**valor 31 90 </td>  </tr>  <%  ors.movenext     inad.movenext  loop 	%>
ADODB.Field (0x80020009)

BOF ou EOF são verdadeiros, ou o registro atual foi excluído. A operação solicitada pelo aplicativo requer um registro atual.

 

ta dando esse erro ai, oq pode ser?

sem o inad.fields funciona de boa

mais com ele da erro!

Compartilhar este post


Link para o post
Compartilhar em outros sites

outra dor de cabeça

 <% do until inad.eof and ors.eof%>    <td><% response.Write(ors.fields("cidade")) %></td>    <td></td>    <td><% 	'if (ors.fields("cidade")) = (inad.fields("cidade_30")) then	response.Write(inad.fields("cidade_30")) 	'end if%></td>    <td></td>    <td>></td>    <td>** contr31 90 </td>    <td>**valor 31 90 </td>  </tr>  <%  ors.movenext  	 inad.movenext	loop %>

fazer escrever os 4 registro

nao sao todos do msm tamanho

uns tem mais que os outros

e nem sempre é o msm!

e ai como que faz?

Compartilhar este post


Link para o post
Compartilhar em outros sites

 <% do until ors.eof%>    <td><% response.Write(ors.fields("cidade")) %></td>    <td></td>    <td><% 	'if (ors.fields("cidade")) = (inad.fields("cidade_30")) then	response.Write(inad.fields("cidade_30")) 	'end if%></td>    <td></td>    <td>></td>    <td>** contr31 90 </td>    <td>**valor 31 90 </td>  </tr><%  ors.movenext  	 inad.movenext	loop %>

como que faço pra saber que estou no ultimo registro?

pq ai eu faço um if mandando ou nao dar o movenext!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Nao sei se esta certo, mais tente desse jeito:

 

ASP [/tr][tr]If ors.EOF AND inad.EOF then

 

ors.MoveNext

InadMoveNext

 

End If

[/tr]

 

Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Nao sei se esta certo, mais tente desse jeito:

 

ASP [/tr][tr]If ors.EOF AND inad.EOF then

 

ors.MoveNext

InadMoveNext

 

End If

[/tr]

 

Eduardo

ja tentei e nao da

valeu

Compartilhar este post


Link para o post
Compartilhar em outros sites

Qual é o erro q da?Eduardo

seguinte. sao 4 querys e ela nao tem o msm numero de colunasentao nao posso mandar executar todaspq chega um hora que acaba uma e nao tem mais dela pra dar .movenexte isso faz dar um errotentei no meio dissa dar o movenextmais da um erro de excessaonunca vi esse erro ainao sei se você poder sar o movenext no meio do loopcom isso talvex parasse o erro com a logica que eu tinha pensando!mais nao seiseri mais ou meno isso o errofalow

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.