Ir para conteúdo

POWERED BY:

Arquivado

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

mistério

Posso utilizar 2 SELECTs em uma única STRING ?

Recommended Posts

Tenho a página abaixo, mas não consigo imprimir na tela o T_RECEBER.

 

SQLSTRING = DATEFORMAT DMY

SELECT day (DTVencimento_ContaPagar) As DIA, month(DTVencimento_ContaPagar) AS MÊS,

year(DTVencimento_ContaPagar) AS ANO, SUM(Valor_ContaPagar)AS T_PAGAR

FROM TContaPagar WHERE DTVencimento_ContaPagar BETWEEN

'01/05/2007' and '31/05/2007'

GROUP BY day (DTVencimento_ContaPagar), month(DTVencimento_ContaPagar), year(DTVencimento_ContaPagar)

ORDER BY year(DTVencimento_ContaPagar), month(DTVencimento_ContaPagar), day (DTVencimento_ContaPagar)

 

SELECT day (Data_ContaReceber) As DIA, month(Data_ContaReceber) AS MÊS,

year(Data_ContaReceber) AS ANO, SUM(Valor_ContaReceber)AS T_RECEBER

FROM TContaReceber WHERE Data_ContaReceber BETWEEN

'01/05/2007' and '31/05/2007'

GROUP BY day (Data_ContaReceber), month(Data_ContaReceber), year(Data_ContaReceber)

ORDER BY year(Data_ContaReceber), month(Data_ContaReceber), day (Data_ContaReceber)[/size]

Compartilhar este post


Link para o post
Compartilhar em outros sites

você não pode usar duas consultas numa única string,

o que você pode fazer é unir essas duas consultas

 

ou jogar em duas strings diferentes e depois juntar os resultados

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu posso usar:

 

Set rsQuery = Conn.Execute(SQLstring & SQLstring2)

 

Como junto os resultados ?

 

você não pode usar duas consultas numa única string,

o que você pode fazer é unir essas duas consultas

 

ou jogar em duas strings diferentes e depois juntar os resultados

Compartilhar este post


Link para o post
Compartilhar em outros sites

Set rsQuery = Conn.Execute(SQLstring & SQLstring2)

aí isso aí já não é mais SQL Server. é asp ou vb.

 

 

Como junto os resultados ?

faz um select só, buscando os dois valores

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como faço uma única select ???

 

Set rsQuery = Conn.Execute(SQLstring & SQLstring2)

aí isso aí já não é mais SQL Server. é asp ou vb.

 

 

Como junto os resultados ?

faz um select só, buscando os dois valores

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

usa o CASE

 

select day(v.data),month(v.data), year(v.data),
sum(case when v.data between data1 and data2 then valor_Venc else 0 end) vr_Venc,
day(r.data),month(r.data), year(r.data),
sum(case when r.data between data1 and data2 then valor_rec else 0 end) vr_rec
from tb_venc v
inner join tb_rec r on (v.data = r.data)

Compartilhar este post


Link para o post
Compartilhar em outros sites

O que é o VALOR VENC ? E o que é o VR_Venc ?

 

usa o CASE

 

select day(v.data),month(v.data), year(v.data),
sum(case when v.data between data1 and data2 then valor_Venc else 0 end) vr_Venc,
day(r.data),month(r.data), year(r.data),
sum(case when r.data between data1 and data2 then valor_rec else 0 end) vr_rec
from tb_venc v
inner join tb_rec r on (v.data = r.data)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tenho estas duas STRINGS e quando chamo valor de RECER, não funciona

SQLstring1= " SET DATEFORMAT DMY "&_

" SELECT day (DTVencimento_ContaPagar) As DIA, month(DTVencimento_ContaPagar) AS MÊS, "&_

" year(DTVencimento_ContaPagar) AS ANO, SUM(Valor_ContaPagar)AS PAGAR "&_

" FROM TContaPagar WHERE DTVencimento_ContaPagar BETWEEN "&_

" '"&DATA_INI&"' and '"&DATA_FIM&"' "&_

" GROUP BY day (DTVencimento_ContaPagar), month(DTVencimento_ContaPagar), year(DTVencimento_ContaPagar)"&_

" ORDER BY year(DTVencimento_ContaPagar), month(DTVencimento_ContaPagar), day (DTVencimento_ContaPagar) "

 

SQLstring2= " SELECT day (TR.Data_ContaReceber) As DIA, month(TR.Data_ContaReceber) AS MÊS, "&_

" year(TR.Data_ContaReceber) AS ANO, SUM(TR.Valor_ContaReceber)AS RECEBER "&_

" FROM TContaReceber TR WHERE TR.Data_ContaReceber BETWEEN "&_

" '"&DATA_INI&"' and '"&DATA_FIM&"' "&_

" GROUP BY day (Data_ContaReceber), month(Data_ContaReceber), year(Data_ContaReceber) "&_

" ORDER BY year(Data_ContaReceber), month(Data_ContaReceber), day (Data_ContaReceber) "

 

SQLString = SQLstring1&SQLstring2

Set rsQuery = Conn.Execute(SQLstring)

Compartilhar este post


Link para o post
Compartilhar em outros sites

quando chamo valor de RECER, não funciona

na consulta você colocou como RECEBER

SUM(TR.Valor_ContaReceber)AS RECEBER "&_

Compartilhar este post


Link para o post
Compartilhar em outros sites

Todos os lugares está escrito receber e não funciona.

 

SQLstring1= " SET DATEFORMAT DMY "&_
				  " SELECT day (DTVencimento_ContaPagar) As DIA, month(DTVencimento_ContaPagar) AS MÊS, "&_
				" year(DTVencimento_ContaPagar) AS ANO, SUM(Valor_ContaPagar)AS PAGAR "&_
				" FROM TContaPagar WHERE DTVencimento_ContaPagar BETWEEN "&_
				" '"&DATA_INI&"' and '"&DATA_FIM&"' "&_
				" GROUP BY day (DTVencimento_ContaPagar), month(DTVencimento_ContaPagar), year(DTVencimento_ContaPagar)"&_
				" ORDER BY year(DTVencimento_ContaPagar), month(DTVencimento_ContaPagar), day (DTVencimento_ContaPagar) "

	SQLstring2= " SELECT day (TR.Data_ContaReceber) As DIA, month(TR.Data_ContaReceber) AS MÊS, "&_
				" year(TR.Data_ContaReceber) AS ANO, SUM(TR.Valor_ContaReceber)AS RECEBER "&_
				" FROM TContaReceber TR WHERE TR.Data_ContaReceber BETWEEN "&_
				" '"&DATA_INI&"' and '"&DATA_FIM&"' "&_
				" GROUP BY day (Data_ContaReceber), month(Data_ContaReceber), year(Data_ContaReceber) "&_
				" ORDER BY year(Data_ContaReceber), month(Data_ContaReceber), day (Data_ContaReceber) "

SQLString = SQLstring1&SQLstring2
	Set rsQuery = Conn.Execute(SQLstring)

	IF NOT rsQuery.Eof Then
		While Not rsQuery.Eof

%>
  <tr class="style3">
	<td width="30"> </td>
	<td width="51" align="center"> <% = rsQuery("DIA") %>/<% = rsQuery("MÊS") %>/<% = rsQuery("ANO") %></td>
	<td width="230" align="right"> R$ </td>
	<td width="230" align="right"><%=FormatNumber(rsQuery("PAGAR"),2)%> </td>
	<td width="263" align="right"> R$ </td>
	<td width="263" align="right"><%=FormatNumber(rsQuery("RECEBER"),2)%></td>
	<td width="230" height="25" align="right"> R$ </td>
	<td width="230" align="right"><%=FormatNumber(SALDO,2)%></td>
  </tr>	
 
 <%
	rsQuery.MoveNext
	Wend
	End If
rsQuery.Close
Set rsQuery = Nothing
%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Apareceu mais um problema.

 

Quando em algum dia do mês não tem valor à receber, o sistema dá erro.

 

Como faço para colocar valor R$ 0.00 nos dias em que não há valor à receber.

 

O código que tenho atualmente é:

 

SQLstring2= " SET DATEFORMAT DMY "&_
				" SELECT day (TR.Data_ContaReceber) As DIA, month(TR.Data_ContaReceber) AS MÊS, "&_
				" year(TR.Data_ContaReceber) AS ANO, SUM(TR.Valor_ContaReceber)AS RECEBER "&_
				" FROM TContaReceber TR WHERE TR.Data_ContaReceber BETWEEN "&_
				" '"&DATA_INI&"' and '"&DATA_FIM&"' "&_
				" GROUP BY day (Data_ContaReceber), month(Data_ContaReceber), year(Data_ContaReceber) "&_
				" ORDER BY year(Data_ContaReceber), month(Data_ContaReceber), day (Data_ContaReceber) "

Set rsQuery2 = Conn.Execute(SQLstring2)

	
	IF NOT rsQuery.Eof Then
		While Not rsQuery.Eof 
		
			
TPagar 		= TPagar + rsQuery("PAGAR")
TReceber	= TReceber + rsQuery2("RECEBER")
SALDO 		= rsQuery("PAGAR") - rsQuery2("RECEBER")
TSaldo		= TSaldo + SALDO

%>
  <tr class="style3">
	<td width="30"> </td>
	<td width="51" align="center"> <% = rsQuery("DIA") %>/<% = rsQuery("MÊS") %>/<% = rsQuery("ANO") %></td>
	<td width="230" align="right"> R$ </td>
	<td width="230" align="right"><%=FormatNumber(rsQuery("PAGAR"),2)%> </td>
	<td width="263" align="right"> R$ </td>
	<td width="263" align="right"><%=FormatNumber(rsQuery2("RECEBER"),2)%> </td>
	<td width="230" height="25" align="right"> R$ </td>
	<td width="230" align="right"><%=FormatNumber(SALDO,2)%></td>
  </tr>	
 
 <%
	rsQuery.MoveNext
	rsQuery2.MoveNext
	Wend
	End If
rsQuery.Close
rsQuery2.Close
Set rsQuery = Nothing
Set rsQuery2 = Nothing
%>

 

:clap:MUITO OBRIGADO A TODOS ! O PROBLEMA FOI SOLUCIONADO.

 

talvez o comando UNION pode ser a solução, estude ele: http://forum.imasters.com.br/index.php?showtopic=224851

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.