Ir para conteúdo

POWERED BY:

Arquivado

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

interwebs

Select data Union order by!!

Recommended Posts

não querendo abusar da boa

vontade de todos, mas ja abusando, alguem pode me ajudar com esse codigo, esta dando esse erro:

 

Tipo de erro:

Microsoft JET Database Engine (0x80040E14)

O número de colunas nas duas tabelas ou consultas selecionadas de uma consulta união não coincidem.

/net/caixa.asp, line 114

 

no caso a linha 114 é o rs:

 

set rs = CreateObject("adodb.Recordset")

 

rs.Open sql, cn

 

segue o codigo

<%if Request.TotalBytes <= 0 then 	Response.End end ifif not isdate(txtdatainicial) then		Response.Write " Data Inicial Invalida! "	Response.End end ifif not isdate(txtdatafinal) then		Response.Write " Data Final Invalida! "	Response.End end if	Sql = "SELECT 'R' As Tipo,tblcontas.pago_recebido, TBLContas.Valor,TBLContas.vencimento,TBLContas.DataLancamento,TBLContas.descricao,TBLCliente.Nome " &_" FROM TBLContas INNER JOIN TBLCliente ON TBLContas.IdCliente = TBLCliente.Id " & _" Where (tblcontas.Vencimento >= #" & tratadata (txtdatainicial) & "#) and " & _" (tblcontas.Vencimento <= #" & tratadata (txtdatafinal) & "#) and pago_recebido = 1 " & _"union SELECT 'P' as Tipo , tblcontasapagar.pago_recebido,TBLContasApagar.Valor,TBLContasApagar.Vencimento,TBLContasApagar.DataLancamento,TBLContasApagar.descricao,TBLFornecedor.Nome " &_" FROM TBLContasApagar INNER JOIN TBLFornecedor ON TBLContasApagar.IdFornecedor = TBLFornecedor.Id " & _" Where (tblContasApagar.Vencimento >= #" & tratadata (txtdatafinal) & "#) and " & _" (tblContasApagar.Vencimento <= #" & tratadata (txtdatafinal) & "#) and pago_recebido = 1 "Sql = Sql & " union "Sql = Sql & "SELECT 'R' As Tipo, 1 as  pago_recebido, TBLRegistro.valor, data as DataLancamento, " & _"'Tranferencia: '+TBLBancos.banco + ' / '+ TBLBancos.conta  as Nome, TBLRegistro.obs as descricao " & _"FROM TBLRegistro INNER JOIN TBLBancos ON TBLRegistro.idbanco = TBLBancos.Id " & _"where TBLRegistro.operacao = 0 and TBLRegistro.Data >=  #" & tratadata (txtdatainicial) & "#  and TBLRegistro.data <= #" & tratadata (txtdatafinal) & "# "Sql = Sql & " union "Sql = Sql & "SELECT 'P' As Tipo, 1 as  pago_recebido, TBLRegistro.valor, data as DataLancamento, " & _"'Deposito : '+TBLBancos.banco + ' / '+ TBLBancos.conta  as Nome, TBLRegistro.obs as descricao " & _"FROM TBLRegistro INNER JOIN TBLBancos ON TBLRegistro.idbanco = TBLBancos.Id " & _"where TBLRegistro.operacao = 1 and TBLRegistro.Data >=  #" & tratadata (txtdatainicial) & "#  and TBLRegistro.data <= #" & tratadata (txtdatafinal) & "# "Sql = Sql & " Order by Vencimento "

se eu comentar os codigo referente a consulta na tblregistro ele funciona certinho so q preciso da consulta na tblregistro onde traga os campos dela ordenados por data, uma coisa q não tem nessa tblregistro mas tem nas outras é o campo "vencimento", no caso da tblregistro tem o campo "data" somente

 

desculpe atrapalhar ae, espero não tomar seu tempo

desde ja agradeço

Compartilhar este post


Link para o post
Compartilhar em outros sites

Camarada,

 

 

Para facilitar a ajuda excute o código abaixo e depois post o resultado do response.write:

Sql = Sql & " Order by Vencimento "'--'-- insiraresponse.write Sqlresponse.end

Post o resultado.

 

t+

Compartilhar este post


Link para o post
Compartilhar em outros sites

segue o resultado de response.write

 

SELECT 'R' As Tipo,tblcontas.pago_recebido, TBLContas.Valor,TBLContas.vencimento,TBLContas.DataLancamento,TBLContas.descricao,TBLCliente.Nome FROM TBLContas INNER JOIN TBLCliente ON TBLContas.IdCliente = TBLCliente.Id Where (tblcontas.Vencimento >= #5/3/2007#) and (tblcontas.Vencimento <= #5/3/2007#) and pago_recebido = 1 union SELECT 'P' as Tipo , tblcontasapagar.pago_recebido,TBLContasApagar.Valor,TBLContasApagar.Vencimento,TBLContasApagar.DataLancamento,TBLContasApagar.descricao,TBLFornecedor.Nome FROM TBLContasApagar INNER JOIN TBLFornecedor ON TBLContasApagar.IdFornecedor = TBLFornecedor.Id Where (tblContasApagar.Vencimento >= #5/3/2007#) and (tblContasApagar.Vencimento <= #5/3/2007#) and pago_recebido = 1 union SELECT 'R' As Tipo, 1 as pago_recebido, TBLRegistro.valor, data as DataLancamento, 'Tranferencia: '+TBLBancos.banco + ' / '+ TBLBancos.conta as Nome, TBLRegistro.obs as descricao FROM TBLRegistro INNER JOIN TBLBancos ON TBLRegistro.idbanco = TBLBancos.Id where TBLRegistro.operacao = 0 and TBLRegistro.Data >= #5/3/2007# and TBLRegistro.data <= #5/3/2007# union SELECT 'P' As Tipo, 1 as pago_recebido, TBLRegistro.valor, data as DataLancamento, 'Deposito : '+TBLBancos.banco + ' / '+ TBLBancos.conta as Nome, TBLRegistro.obs as descricao FROM TBLRegistro INNER JOIN TBLBancos ON TBLRegistro.idbanco = TBLBancos.Id where TBLRegistro.operacao = 1 and TBLRegistro.Data >= #5/3/2007# and TBLRegistro.data <= #5/3/2007# Order by Vencimento

Compartilhar este post


Link para o post
Compartilhar em outros sites

Camarada,No uso do UNION todas os SELECT´s deve retornar o msm número de campos.No seu SELECT alguns retornam 6 colunas em outro 7 colunas. Retire a coluna a mais ou colque uma coluna virtual nos select´s com menos colunas.t+

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.