marcioe Posted August 3, 2015 Report Share Posted August 3, 2015 Preciso Executar um SQL para Saber se um Documento está pago ou não Exemplo é assim Tenho a tabela de CT-e, e uma tabela de baixas, destes ct-e, pois um mesmo ct-e pode ter mais de um pagamento. Em resumo é assim contas_receber_baixas = onde registro os pagamentos que o ct-e teve ctrc = Tabela onde tenho o Valor Bruto a Ser recebido. Pois quando for listar o contas a receber, preciso saber quanto já foi pago de cada ct-e, e fazer isso com tabelas temporias demora, pois tem ct-e demais. mais de 100 mil registros cQuery:= ' select ct_receber.*, ' cQuery:=cQuery+ ' cte.ID, cte.NUMERO, cte.SERIE, cte.EMISSAO, cte.TOTAL_PRESTACAO, cte.PLACA, cte.CODIGO_REMETENTE, ' cQuery:=cQuery+ ' dest.CODIGO_DESTINATARIO, dest.NOME_DESTINATARIO, dest.CNPJ_DESTINATARIO, ' cQuery:=cQuery+ ' banc.CODIGO_BANCO as banc_CODIGO_BANCO, banc.NOME_BANCO ' cQuery:=cQuery+ ' from contas_receber_baixas as ct_receber ' cQuery:=cQuery+ ' LEFT JOIN ctrc AS cte ON cte.ID = ct_receber.ID_CTRC ' cQuery:=cQuery+ ' LEFT JOIN destinatarios AS dest ON cte.CODIGO_REMETENTE = dest.CODIGO_DESTINATARIO ' cQuery:=cQuery+ ' LEFT JOIN bancos AS banc ON ct_receber.CODIGO_BANCO = banc.CODIGO_BANCO ' use sql cQuery alias "a_receber_ctrc" new via 'MYSQL' Agradeço ao amigos Quote Link to comment Share on other sites More sharing options...
joaosolution Posted August 3, 2015 Report Share Posted August 3, 2015 Marcio Bom dia Poderia ser algo assim? select ctrc.id, ctrc.NUMERO, recebidas.total from ctrc left join (select ID_CTRC, sum(valorrecebido) as total from contas_receber_baixas group by ID_CTRC ) as recebidas on recebidas.ID_CTRC=ctrc.id Att João Bosco Quote Link to comment Share on other sites More sharing options...
kleyber Posted August 3, 2015 Report Share Posted August 3, 2015 Marcio bom dia, Se eu entendi bem, qual campo da tabela contas_receber_baixas indica que foi pago ou não? Supondo que seja o campo PAGO, por exemplo, acrescentaria isto: WHERE ct_receber.pago = 'S' Quote Link to comment Share on other sites More sharing options...
marcioe Posted August 3, 2015 Author Report Share Posted August 3, 2015 amigo, kleyberé assim a coisa * Tabela ctrc = onde tem um registro um para um ou seja unico (onde ele tem o ID. como chave) * tabela contas_receber_baixas (ID_CTRC, onde ligo um ctrc no contas a receber) onde armazeno as parcelas pagas um ctrc de 15.000,00 pode ser pago em até por exemplo 03 parcelas, pode ter descontos ou juros. *===================================================== ctrc numero 12345 da serie 007 a receber 15.000,00 data xx/yy/zz valor pago 5,000,00 data aa/bb/cc valor pago 5,000,00 data dd/ee/ff valor pago 4.900,00 data dd/ee/ff valor desconto 100,00 *----------------------------------------------------------------------------------- Quote Link to comment Share on other sites More sharing options...
kleyber Posted August 3, 2015 Report Share Posted August 3, 2015 Marcio, E quais os campos que tem as informações de valor pago, juros ou descontos? Quote Link to comment Share on other sites More sharing options...
marcioe Posted August 3, 2015 Author Report Share Posted August 3, 2015 Amigos, obrigado pela ajuda mas a dica do joao é a que mais parece com o que quero. Porem o valor quando nao foi pago fica escrito (NULL) Quando na verdade queria que ficasse 0,00 [IMG]http://i59.tinypic.com/sxes8m.jpg[/IMG] Quote Link to comment Share on other sites More sharing options...
joaosolution Posted August 3, 2015 Report Share Posted August 3, 2015 Marcio Trate o resultado com: select ctrc.id, ctrc.NUMERO, IFNULL(recebidas.total,0) as total Att João Bosco Quote Link to comment Share on other sites More sharing options...
marcioe Posted August 3, 2015 Author Report Share Posted August 3, 2015 Massa era isso mesmo... Valeu galera Quote Link to comment Share on other sites More sharing options...
marcioe Posted August 4, 2015 Author Report Share Posted August 4, 2015 agora joao se eu comparar recebidas.total != 0 ele retorna certo, mas se fizer assim recebidas.total=0 ele nao mostra nada, possivelmente por causa do NULL Teria alguma forma de tratar isso. Quote Link to comment Share on other sites More sharing options...
miragerr Posted August 4, 2015 Report Share Posted August 4, 2015 Ola amigo Tenta colocar assim ( recebidas.total = 0 .OR. recebidas.total IS NULL ) Quote Link to comment Share on other sites More sharing options...
joaosolution Posted August 4, 2015 Report Share Posted August 4, 2015 Marcio Acho que assim funfa... IFNULL(recebidas.total,0) = 0 Att João Bosco Quote Link to comment Share on other sites More sharing options...
marcioe Posted August 4, 2015 Author Report Share Posted August 4, 2015 Ola amigo essa funciona ( recebidas.total = 0 .OR. recebidas.total IS NULL ) e assim tambem IFNULL(recebidas.total,0) = 0 Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.