Duvida com comando MySQL

1 resposta
U

Ola galera,

Estou desenvolvendo uma aplicação contábil simples para um trabalho final de período,

nesta aplicação tem 3 tipos de cadastros: Conta, Histórico e Lançamento
no banco de dados a relação entre essas tabelas é a seguinte:

Conta 1 ------> n conta_has_lançamento n <------- 1 Lancamento n <-------- 1 Historico

a parti de cadastro, exclui e alterar esta funcionando perfeitamente, a pesquisa t tbm funciona mas só que não
esta mostrando do jeito que eu queria.

Comando mysql para fazer a pesquisa:

sql = "select l.* , c.descricao, cl.* ";
      sql += "from lancamento l ";
      sql += "inner join conta_has_lancamento cl on cl.lancamento_id = l.id ";
      sql += "inner join conta c on cl.conta_id = c.id ";
      sql += "where l.data like '" + dataPesquisa + "%' ";
      sql += "order by l.id";

Como mostra o resultado:

id       data          valor         historico_id                              complemento                conta_desc      conta_id lancamento_id  referencia
'6' | '2012-06-21' | '5455.00' | '14'             | 'TRANSFERENCIA BANCO X PARA BANCO Y VALO XXXX' | 'BRADESCO'       | '3'       | '6'          | '1'
'6' | '2012-06-21' | '5455.00' | '14'             | 'TRANSFERENCIA BANCO X PARA BANCO Y VALO XXXX' | 'BANCO DO BRASIL'| '6'       | '6'          | '2'

obs.: essa referencia só colquei pra identificar se a conta é Débito ou Crédito, quando referencia = 1 —> Débito. referencia = 2 —> Crédito.

Como gostaria que fosse:

id        data        valor      historico_id                         complemento                    conta (debito)  conta (credito)          
'6' | '2012-06-21' | '5455.00' | '14'             | 'TRANSFERENCIA BANCO X PARA BANCO Y VALO XXXX' | 'BRADESCO'     | 'BANCO DO BRASIL'

existem algum tipo de comando que posso vincula esses dois campos da consulta em um só como mostra o segundo exemplo?

se for problema de logica alguém poderia me ajudar?

1 Resposta

pmlm

Algo como (não testei)

SELECT (...), cred.conta_desc as conta_cred, deb.conta_desc as conta_deb (...) inner join conta cred on cl.conta_id = cred.id and referencia = 2 inner join conta deb on cl.conta_id = deb.id and referencia = 1 (...)

Criado 22 de junho de 2012
Ultima resposta 22 de jun. de 2012
Respostas 1
Participantes 2