none
Problemas num select RRS feed

  • 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 boleto

                                   dados 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ída

     

     

    Até 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_usu

     

    Eu 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.

     

    quarta-feira, 4 de junho de 2008 23:42

Todas as Respostas

  • Adolfo,

     

    Se eu consegui entender você deseja deseja fazer mais uma união de tables no mesmo select retornando dados.

     

    Se for isso seria o caso de utilizar mais um Join, algo do tipo Inner Join ou Left Join!!!

     

    Você já tentou?

    quinta-feira, 5 de junho de 2008 10:27
  • 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.id

    Poré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.id

     

    O problema é que sai muitas duplicidades.

    quinta-feira, 5 de junho de 2008 13:50