referncia cruzada no oracle
20/10/2009
0
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.
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.
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.
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.
Etspaz
Curtir tópico
+ 0
Responder
Clique aqui para fazer login e interagir na Comunidade :)