logo DevMedia  
Home Entenda o site Revistas Canais Cursos Palestras Suporte Fórum +Serviços Assine Compre Créditos

Edição do Mês
  Fórum DevMedia
Fórum de Discussão
Conheça também o NOVO fórum da DevMedia, no endereço: www.devmedia.com.br/forum
O novo fórum possui diversas vantagens! Saiba mais em
www.devmedia.com.br/articles/viewcomp.asp?comp=14726
Estamos sempre trabalhando na melhora do site como um todo! Bons códigos!
Equipe DevMedia

 FAQFAQ   PesquisarPesquisar   MembrosMembros   GruposGrupos  RegistrarRegistrar   
 PerfilPerfil   Entrar e ver Mensagens ParticularesEntrar e ver Mensagens Particulares   EntrarEntrar 
Edição do Mês

referncia cruzada no oracle
 
Novo Tópico   Responder Mensagem    Fórum DevMedia - Índice do Fórum -> Oracle
Exibir mensagem anterior :: Exibir próxima mensagem  
Autor Mensagem
etspaz
Novato


Registrado em: Terça-Feira, 22 de Mai de 2007
Mensagens: 38

MensagemEnviada: Ter Out 20, 2009 5:21 pm    Assunto: referncia cruzada no oracle Responder com Citação

Boa tarde pessoal,

Estou fazendo uma consulta no oracle, que me retorna uma referencia cruzada.
Aparentemente está normal, mas fiz uma pequena alteração no group by e alterou o resultado, como a query montei com ajuda de colegas na net, não sei qual é a forma correta.

C?o:

select ACCT_NBR,
sum(decode(CLASSE,'AD ROAMING',charge_cr_amt,0))"AD ROAMING",
sum(decode(CLASSE,'ASSINATURA',charge_cr_amt,0))"ASSINATURA",
sum(decode(CLASSE,'CORREIO MÓVEL',charge_cr_amt,0))"CORREIO MÓVEL",
sum(decode(CLASSE,'DESCONTO ASS FRANQUIA',charge_cr_amt,0))"DESCONTO ASS FRANQUIA",
sum(decode(CLASSE,'DESCONTO DADOS',charge_cr_amt,0))"DESCONTO DADOS",
sum(decode(CLASSE,'DESCONTO OUTRAS RECEITAS',charge_cr_amt,0))"DESCONTO OUTRAS RECEITAS",
sum(decode(CLASSE,'ESCONTO VC1',charge_cr_amt,0))"DESCONTO VC1",
sum(decode(CLASSE,'DSL INT',charge_cr_amt,0))"DSL INT",
sum(decode(CLASSE,'FRANQUIA',charge_cr_amt,0))"FRANQUIA",
sum(decode(CLASSE,'PARCELAMENTO DE EQUIPAMENTO',charge_cr_amt,0))"PARCELAMENTO DE EQUIPAMENTO",
sum(decode(CLASSE,'SERV EVENTUAL',charge_cr_amt,0))"SERV EVENTUAL",
sum(decode(CLASSE,'SMS - PTA',charge_cr_amt,0))"SMS - PTA",
sum(decode(CLASSE,'SMS - PTP',charge_cr_amt,0))"SMS - PTP",
sum(decode(CLASSE,'PACOTE ZAP',charge_cr_amt,0))"PACOTE ZAP",
SUM(charge_cr_amt)"TOTAL"
FROM (SELECT CHARGE_CR_ITEM.ACCT_NBR, CLASSE,CHARGE_CR_ITEM.charge_cr_amt FROM CHARGE_CR_ITEM
INNER JOIN TAB_CLASSE T ON T.CAPTN_CD = CHARGE_CR_ITEM.CAPTN_CD
WHERE
    CHARGE_CR_ITEM.LAST_BILL_DT = '20091016'
AND CHARGE_CR_ITEM.CYCLE_CD = '78'
AND CHARGE_CR_ITEM.CHARGE_CR_AMT <> 0
AND CHARGE_CR_ITEM.ACCT_NBR IN ('2036438273',
'0122918103',
'2046014486',
'2017736468',
'2032463104',
'0122745278',
'2046368293',
'2028747547',
'2046174031',
'0142113041',
'0121302166',
'2042631597',
'2038157407',
'0010569210',
'0000205224',
'0001336454',
'2046655030',
'2031185815',
'2037431523',
'2045214936',
'2046682329',
'2033063542',
'2041370548'))
GROUP BY acct_nbr,CLASSE


a única diferença quando tiro a classe do group by, retorna resultado diferente.
Peço auxilio aos colegas mais experientes, pois não sei se devo ou não incluir.
eu achava que não podia deixar de fora um campo do group by que não está em função.

Desde já, agradeço.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
Mostrar os tópicos anteriores:   
Novo Tópico   Responder Mensagem    Fórum DevMedia - Índice do Fórum -> Oracle Todos os horários são GMT - 3 Hours
Página 1 de 1

 
Ir para:  
Enviar Mensagens Novas: Proibído.
Responder Tópicos Proibído
Editar Mensagens: Proibído.
Excluir Mensagens: Proibído.
Votar em Enquetes: Proibído.


Powered by phpBB © 2001, 2005 phpBB Group
Traduzido por: Suporte phpBB