Exibir coluna dependendo de condição

Dúvidas, dicas e truques de SQL, Select, Update, Delete, cláusulas, operações com joins, Funções em SQLs, etc
jks1903
Rank: DBA Júnior
Rank: DBA Júnior
Mensagens: 188
Registrado em: Qui, 04 Fev 2010 8:08 am

Pessoal seguinte, to com uma dúvida/problema assim.

Tnho uma tabela de usuários, contendo varios campos com informações cadastrais dos mesmos, com nome, endereço, telefone e etc.
Um desses campos armazena a data de cadastro desse beneficiario.

Em uma tabela distinta temos os valores das taxas de inclusão desses usuários e o código dessa tabela é relacionado em um campo da tabela usuários.

Preciso selecionar os dados dos beneficiarios e sua taxa de inscrição do último mês, ou seja, se o usuario foi cadastrado nesse período ele exibe o valor da taxa de inscrição, caso contrario aparece null no campo.

Saberiam me dizer como posso fazer isso?

Vlw.
victorhugomuniz
Moderador
Moderador
Mensagens: 1396
Registrado em: Sex, 01 Fev 2008 2:06 pm
Localização: Rio de Janeiro - RJ
Contato:
:D

posta a estrutura das tabelas envolvidas..
diegopedrao
Rank: Analista Sênior
Rank: Analista Sênior
Mensagens: 164
Registrado em: Sex, 22 Ago 2008 12:28 pm
Localização: SP

Seria ago do tipo?

Selecionar tudo


SELECT A.*,
           (SELECT B.TAXA
              FROM BENEFICIARIOS B
             WHERE B.USUARIO_ID = A.USUARIO_ID
                 AND B.TAXA_INSCRICAO BETWEEN TO_DATE('01/'||TO_CHAR(SYSDATE, 'MM/YYYY'), 'DD/MM/YYYY') AND LAST_DAY(TO_DATE('01/'||TO_CHAR(SYSDATE, 'MM/YYYY'), 'DD/MM/YYYY'))
  FROM USUARIOS A
     
Att,

Diego Monteiro
jks1903
Rank: DBA Júnior
Rank: DBA Júnior
Mensagens: 188
Registrado em: Qui, 04 Fev 2010 8:08 am

Bom, essas tabelas possuem muitos campos mas vou postar somente o que interessa por momento.

Selecionar tudo

TABELA USUARIO
============
cd_usuario number PRIMARY KEY,
nm_usuario varchar(200),
dt_cadastro date,
cd_taxa number -- FOREIGN KEY, refere-se a primary key da tabela taxas.


TABELA TAXAS
==========
cd_taxa number PRIMARY KEY,
ds_taxa varchar(200),
vl_taxa number
Baseado nessa estrutura, precisaria daquele select informando os valores das taxas somente para usuarios que foram cadastrados num determinado período.
Caso a data de cadastro do beneficairio não esteja dentro do período selecionado é exibido NULL no campo.

Vlw.
diegopedrao
Rank: Analista Sênior
Rank: Analista Sênior
Mensagens: 164
Registrado em: Sex, 22 Ago 2008 12:28 pm
Localização: SP

Olha isso:

Selecionar tudo


SELECT A.*,
           (SELECT B.TAXA
              FROM TABELA_TAXAS B
            WHERE A.CD_TAXA = B.CD_TAXA
                 AND A.DT_CADASTRO BETWEEN TO_DATE('01/'||TO_CHAR(SYSDATE, 'MM/YYYY'), 'DD/MM/YYYY') AND LAST_DAY(TO_DATE('01/'||TO_CHAR(SYSDATE, 'MM/YYYY'), 'DD/MM/YYYY')) 
  FROM TABELA_USUARIO A
Seria isso ?

Att,

Diego Monteiro
jks1903
Rank: DBA Júnior
Rank: DBA Júnior
Mensagens: 188
Registrado em: Qui, 04 Fev 2010 8:08 am

CAra, quase isso.

Pelo que vi ali, o select irá retornar o valor da taxa para os usuários que foram cadastrados no periodo selecionado.

Porém eu preciso exibir todos os usuários da base, porém a informação da taxa de inscrição só será exibida para aqueles que realmente foram cadastrados no mês, pois os demais já pagaram a taxa.
diegopedrao
Rank: Analista Sênior
Rank: Analista Sênior
Mensagens: 164
Registrado em: Sex, 22 Ago 2008 12:28 pm
Localização: SP

cara,

Ele vai trazer a sua base inteira... faz o teste para tu ver.

Att,

Diego Monteiro
jks1903
Rank: DBA Júnior
Rank: DBA Júnior
Mensagens: 188
Registrado em: Qui, 04 Fev 2010 8:08 am

Cara, realmente, rsrs.

Foi malz interpretei errado teu select, porque eu só tinha olhado assim por cima.

Vlw cara, bufou.
Responder
  • Informação
  • Quem está online

    Usuários navegando neste fórum: Nenhum usuário registrado e 8 visitantes