Inquiridor
Problemas num select

Pergunta
-
Olá pessoal,
Estou com grande problema.
Tenho duas tabelas com dados diferentes:
tabela
tbl_sisabepsi_debito onde eu armazeno:
id de controle de processos contador
id_usu id do usuário que deve
id_valores código deste valor, deste débito
status se foi pago ou não
Tenho uma outra tabela (tbl_sisabepsi_boleto) onde eu armazeno:
id de controle de processos contador
id_usu id do usuário
id_valores corresponde ao código do valor
nome da pessoa que gerou o boleto
cpf da pessoa que gerou o boleto
email da pessoa que gerou o boletodados complementares para geração do boleto
pago se foi pago ou não este boleto
dt_pagamento a data de pagamento conforme o usuário dá a baixa a data de pagamento é incluídaAté ai tudo bem, mas deixa eu explicar meu problema:
Na tabela debito eu sei quais são os usuários que pagaram, faço um:
select * from tbl_sisabepsi_debito
where status = 'PAGO'
Ai eu consigo um relação da galera que pago pegando os valores eu sei quais foram os valores que eles pagaram. Ou seja, se eu fizer:
select
a.id_valores as 'VALORES VALORES',
a.ano as 'Ano valores',
a.categoria as 'categoria valores',
a.valor as 'valor valores',
b.id as 'ID DEBITO',
b.id_usu as 'ID_usu Debito',
b.id_valores as 'ID_VALORES debito',
b.status as 'Status debito'
from tbl_sisabepsi_valores a
INNER JOIN tbl_sisabepsi_debito b
on a.id_valores = b.id_valores
where b.status = 'PAGO'
order by b.id_usuEu tenho a relação, isso aprendi aqui.
Porém eu preciso destes dados com relação a tabela boleto, para saber o boleto que ele pagou, além disso irei verificar se as baixas estão sendo feitas corretamente com relação a anuidade paga (tbl_sisabepsi_debito) e aos boletos gerados (tbl_sisabepsi_boleto)Vale lembrar que a outra tabela em questão é:
tbl_sisabepsi_valores onde armazeno:
Id_valores id_valor, o código
ano anuidade que corresponde este valor
categoria categoria do valor, de acordo com o tipo de inscrição
valor que é o valor mesmo, a quantidade (R$)
Se alguém puder me ajudar nesta busca. Também gostaria de saber comentários sobre esta estrutura, separei a parte de boletos por que o usuário pode e deverá gerar n boletos e só vai pagar 1. E também separei a parte de valores, pq a cada virada de ano temos novas anuidades, então o meu associado poderá dever n anuidades/mensalidades.Muito obrigado,
Adolfo
P.S. Continuo tentando desenvolver de acordo com a resposta anterior em: http://forums.microsoft.com/MSDN-BR/ShowPost.aspx?PostID=3364674&SiteID=21
Porém confesso que é a segunda vez na vida que sofro com o join.
Todas as Respostas
-
-
Então eu confesso que estou tentando estou pesquisando e buscando porém não consigo o resultado dá muitas duplicidade de dados e não consigo entender o resultaldo, veja o meu join e se puder por favor me ajude:
select a.id as 'ID boleto', b.id as 'ID debito', a.id_usu as 'ID_USU boleto', b.id_usu as 'ID_USU debito', a.id_valores as 'ID_VALORES boleto', b.id_valores as 'ID_valores debito',
a.nome as 'NOME boleto', a.cpf as 'CPF boleto', a.email as 'EMAIL boleto', a.dt_vencimento as 'DT_VENCIMENTO boleto', a.dt_pagamento as 'DT_PAGAMENTO boleto', b.obs as 'OBSERVACAO debito' , a.pago as 'PAGAMENTO EFETUADO boleto', b.status as 'PAGAMENTO EFETUADO debito'
from tbl_sisabepsi_boleto a INNER JOIN tbl_sisabepsi_debito b
on a.id_usu = b.id_usu
where b.status = 'PAGO'
order by a.idPorém preciso incluir a 3 tabela e veja até onde consegui chegar:
select
a.id as 'ID boleto',
b.id as 'ID debito',
a.id_usu as 'ID_USU boleto',
b.id_usu as 'ID_USU debito',
a.id_valores as 'ID_VALORES boleto',
b.id_valores as 'ID_valores debito',
a.nome as 'NOME boleto',
a.cpf as 'CPF boleto',
a.email as 'EMAIL boleto',
a.dt_vencimento as 'DT_VENCIMENTO boleto',
a.dt_pagamento as 'DT_PAGAMENTO boleto',
b.obs as 'OBSERVACAO debito' ,
a.pago as 'PAGAMENTO EFETUADO boleto',
b.status as 'PAGAMENTO EFETUADO debito',
c.id_valores as 'ID_VALORES VALORES'
from tbl_sisabepsi_boleto a
INNER JOIN tbl_sisabepsi_debito b
on a.id_usu = b.id_usu
INNER JOIN tbl_sisabepsi_valores c
ON a.id_valores = c.id_valores
where b.status = 'PAGO' and a.pago = 'PAGO'
order by a.idO problema é que sai muitas duplicidades.