Dúvida Select dentro de select

Dúvidas, dicas e truques de PL/SQL. Aqui também vão assuntos relacionados a pacotes, triggers, funções, Java-Stored Procedures, etc
Responder
cekitano
Rank: Programador Júnior
Rank: Programador Júnior
Mensagens: 17
Registrado em: Ter, 13 Nov 2007 9:59 am
Localização: SP

Bom dia pessoal,
Estou com uma dúvida e gostaria do auxilio de você´s.

Tenho o seguinte select, na hora de executar dá um erro de sintaxe logo na segunda linha.....se alguém tiver alguma dica de como corrigir agradeço.

Obs: Coloquei um (AQUI) onde o plsql indica erro de sintaxe ok?

Selecionar tudo

SELECT tcc.tcccod,tcc.tccnom,tcc.tccflu ,
(AQUI)(SELECT SUM(cctval - cctvab) as vet0 
      FROM tb_cebcct , tb_cebtab_tcc tcc 
      WHERE cctst1 IN(' ','0','8') 
      AND ccttcc = tcc.tcccod 
      AND cctfl2 =   tcc.tccflu 
      AND cctdt1 <= TO_DATE('12/11/2007','DD/MM/YYYY')) 
FROM tb_cebtab_tcc tcc 
WHERE tcc.tccflu IN('1','2') 
ORDER BY tcc.tccflu,tcc.tcccod
mais uma vez obrigado!
Tineks
Rank: DBA Sênior
Rank: DBA Sênior
Mensagens: 365
Registrado em: Ter, 24 Mai 2005 2:24 pm
Localização: Araraquara - SP
Cristiano (Tineks)
Araraquara - SP

você poderia postar o erro que está dando ou um desc das suas tabelas???

[]'s
cekitano
Rank: Programador Júnior
Rank: Programador Júnior
Mensagens: 17
Registrado em: Ter, 13 Nov 2007 9:59 am
Localização: SP

Opa desculpa esqueci de colocar o erro que esta dando...
ORA-00936: missing expression

Obrigado!
Trevisolli
Moderador
Moderador
Mensagens: 2016
Registrado em: Qua, 12 Jan 2005 3:25 pm
Localização: Araraquara - SP
Abraço,

Trevisolli
OCA Oracle PL/SQL Developer Certified Associate
OCP Oracle Forms Developer Certified Professional
Araraquara-SP

Brother,

Uma dica é verificar se tua query interna não está retornando mais de uma linha e, teus ALIAS que são idênticos.
Apesar de poder não estar gerando erro, gera confusão na tua leitura do código.

Mas, como o Tineks falow, fica mais fácil pra gente poder ajudar, o código do erro e, se possível o DESC das tuas tabelas.

Outra verificação importante: Você tentou executar este select interno, separado para ver se está trabalhando corretamente?

qualquer coisa, manda ai.
Tineks
Rank: DBA Sênior
Rank: DBA Sênior
Mensagens: 365
Registrado em: Ter, 24 Mai 2005 2:24 pm
Localização: Araraquara - SP
Cristiano (Tineks)
Araraquara - SP

O seu select aparentemente não tem erro, os parametros que você está informando nele estão fixos ou são algum campo da sua aplicação???
pois esse erro "missing expression" é algum parametro que não foi informado.

[]'s
cekitano
Rank: Programador Júnior
Rank: Programador Júnior
Mensagens: 17
Registrado em: Ter, 13 Nov 2007 9:59 am
Localização: SP

Olá Tineks...
Então eu executo esse código via programa....
Coloquei um debug e copiei exatamente a string que esta sendo enviada para o banco.....e me retorna esse erro....
eu sinceramente não sei como corrigir... :oops:
Se tiver alguma outra ideia....
obrigado!!!
cekitano
Rank: Programador Júnior
Rank: Programador Júnior
Mensagens: 17
Registrado em: Ter, 13 Nov 2007 9:59 am
Localização: SP

Olá Trevisolli ...
Se executo os selects separadamente ele executa sem problemas....sem erro nenhum.....o problema esta mesmo quando "junto" os selects.....
Tineks
Rank: DBA Sênior
Rank: DBA Sênior
Mensagens: 365
Registrado em: Ter, 24 Mai 2005 2:24 pm
Localização: Araraquara - SP
Cristiano (Tineks)
Araraquara - SP

Você tentou modificar o alias do select interno??

[]'s
rodfbar
Rank: DBA Pleno
Rank: DBA Pleno
Mensagens: 241
Registrado em: Ter, 09 Out 2007 11:15 am
Localização: Batatais - SP

seguindo a ideia do tineks, colocar o alias fora do sub select

Selecionar tudo

SELECT tcc.tcccod,tcc.tccnom,tcc.tccflu , 
(AQUI)(SELECT SUM(cctval - cctvab) 
        FROM tb_cebcct , tb_cebtab_tcc tcc 
      WHERE cctst1 IN(' ','0','8') 
      AND ccttcc = tcc.tcccod 
      AND cctfl2 =   tcc.tccflu 
      AND cctdt1 <= TO_DATE('12/11/2007','DD/MM/YYYY')) as vet0 
FROM tb_cebtab_tcc tcc 
WHERE tcc.tccflu IN('1','2') 
ORDER BY tcc.tccflu,tcc.tcccod 
cekitano
Rank: Programador Júnior
Rank: Programador Júnior
Mensagens: 17
Registrado em: Ter, 13 Nov 2007 9:59 am
Localização: SP

olá...
muito obrigado pelas respostas....
coloquei o alias fora..como indicado.....
mesmo assim o mesmo erro (ORA-00936-missing expression) continua...no mesmo ponto...
:(
Trevisolli
Moderador
Moderador
Mensagens: 2016
Registrado em: Qua, 12 Jan 2005 3:25 pm
Localização: Araraquara - SP
Abraço,

Trevisolli
OCA Oracle PL/SQL Developer Certified Associate
OCP Oracle Forms Developer Certified Professional
Araraquara-SP

Brother, este teu select postado, é um select dinâmico?
Caso positivo, em tempo de execução, ele pode estar dando erro neste ponto:

Selecionar tudo

 WHERE cctst1 IN(' ','0','8') 
Outra coisa, como o Tineks disse, missing expression, realmente é falta de parâmetros, causando um "erro" na montagem do select.

Faz um debug com todos os possíveis parâmetros dessa tua query.
cekitano
Rank: Programador Júnior
Rank: Programador Júnior
Mensagens: 17
Registrado em: Ter, 13 Nov 2007 9:59 am
Localização: SP

Estou postando a estrutura da tabela...
Se puderem me ajudar.... Obrigado!
tabela 1

Selecionar tudo

CREATE TABLE tb_cebcct (
cctsts       CHAR(1)              /* Status s/ uso                          */,
ccttcc       CHAR(2)     NOT NULL /* Tipo do Conta Corrente (tb_srctab_tcc) */,
cctre1       CHAR(6)     NOT NULL /* Responsavel do C/Corrente              */,
cctncc       VARCHAR(17) NOT NULL /* Numero do C/Corrente                   */,
ccttr1       CHAR(6)              /* Estabelec. (GCVEMI) CC/CH/CE -> BANCO,CX/TE  */,
cctst1       CHAR(1)              /* Situacao do Conta Corrente             */,
             CONSTRAINT ck_cebcct_st1 CHECK (cctst1 IN (' ','0','1','2',
                                                        '3','4','7','8',
                                                        '9','C','D','L',
                                                        'R')
                        OR cctst1 IS NULL),
cctdt1       DATE           /* Data de Vencimento/Liquidacao                 */,
cctfl2       CHAR(1)        /* Fluxo Financeiro                              */,
             CONSTRAINT ck_cebcct_fl2 CHECK (cctfl2 IN ('0','1','2','N',' ')
                        OR cctfl2 IS NULL),
ccterc       CHAR(6)        /* Emi/Favo Cheque (Rec/Emi) ou Cartao(CH/CC/CE)*/,
cctnec       VARCHAR(40)    /* Nome Emit/Favor Cheque/Cartao  (CH/CC/CE)    */,
cctnct       VARCHAR( 20)   /* Numero do Cheque/Cartao de Credito           */,
cctcmp       VARCHAR( 20)   /* Complemento                                  */,
cctdat       DATE           /* Data Emissao                                 */,
cctval       NUMERIC(11, 2) /* Valor Base                                   */,
cctdtv       DATE           /* Data do Vencimento                           */,
ccttxt       VARCHAR(255)   /* Observacao do Conta Corrente                 */,
cctcar       CHAR(1)        /* Caracteristica do CCR (D/C)                  */,
             CONSTRAINT ck_cebcct_car CHECK (cctcar IN ('D','C')
                        OR cctcar IS NULL),
cctinc       CHAR(1)        /* Tipo da Inclusao (M=Manual)                  */,
             CONSTRAINT ck_cebcct_inc CHECK (cctinc IN (' ','M')
                        OR cctinc IS NULL),
cctbco       NUMERIC( 3)    /* Banco Portador do Compromisso a Pagar        */,
cctopr       CHAR(2)        /* Operacao Geradora                            */,
cctdtp       DATE           /* Data do Processo da Operacao Geradora        */,
cctntr       NUMERIC( 5)    /* Numero da Transacao da Operacao Geradora     */,
cctseq       NUMERIC( 3)    /* Sequencia da Operacao Geradora               */,
cctope       CHAR(6)        /* Operador da geracao do Conta Corrente        */,
ccthor       NUMERIC( 6)    /* Hora de Geracao do Conta Corrente            */,
cctprg       VARCHAR(  8)   /* Programa Gerador do Conta Corrente           */,
cctemp_cpi   NUMERIC( 2)    /* Empresa (tb_cbaemp) - Acesso FK              */,
cctcpi       NUMERIC(14)    /* Contra Partida (C/C Manual) (tb_cbacta)      */,
cctsit       CHAR(1)        /* Situacao Anterior a Atual                    */,
             CONSTRAINT ck_cebcct_sit CHECK (cctsit IN (' ','0','1','2',
                                                        '3','4','7','8',
                                                        '9','C','D','L',
                                                        'R')
                        OR cctsit IS NULL),
cctctt       VARCHAR( 16)   /* Chave do Deposito na (tb_cebcct) C/C = CC    */,
cctvab       NUMERIC(11, 2) /* Valor Pago/Recebido Sobre Principal          */,
cctvde       NUMERIC(11, 2) /* Juros Pagos/Despesas                         */,
cctvre       NUMERIC(11, 2) /* Juros Recebidos/Resultado                    */,
cctuop       CHAR(2)        /* Codigo da Ultima Operacao                    */,
cctudp       DATE           /* Data do Processo da Ultima Operacao          */,
cctunt       NUMERIC( 5)    /* Numero de Transacao da Ultima Operacao       */,
cctusq       NUMERIC( 3)    /* Sequencia da Ultima Operacao                 */,
cctuor       CHAR(6)        /* Ultimo Operador                              */,
cctuho       NUMERIC( 6)    /* Ultima Hora                                  */,
cctupr       VARCHAR(  8)   /* Ultimo Programa                              */,
cctuva       NUMERIC(11, 2) /* Valor do Movimento                           */,
cctori       CHAR(2)        /* Origem da Compra/Venda/Conta Corrente        */,
cctnop       NUMERIC( 4)    /* Natureza de Operacao (tb_tabnop)             */,
ccttor       CHAR(1)        /* Categoria da origem (Peca,oFicina,Vei,Outr)  */,
             CONSTRAINT ck_cebcct_tor CHECK (ccttor IN (' ','P','F','V','O')
                        OR ccttor IS NULL),
cctdla       DATE           /* Data Lancamento em GCEATE                    */,
cctcpg       NUMERIC( 2)    /* Condicao de Pagamento (tb_tabcpg)            */,
cctvpa       NUMERIC(11, 2) /* Valor a Pagamento/Recebimento Atualizado     */,
cctvqc       NUMERIC(11, 5) /* Valor a Pagar (Em QC's)                      */,
cctstc       CHAR(1)        /* Situacao do C/C Antes Cancelamento (CEB023)  */,
             CONSTRAINT ck_cebcct_stc CHECK (cctstc IN (' ','0','1','2',
                                                        '3','4','7','8',
                                                        '9','C','D','L',
                                                        'R')
                        OR cctstc IS NULL),
cctnpr       NUMERIC( 7)    /* Numero da Proposta                           */,
cctscv       CHAR(1)        /*                                              */,
ccttfo       CHAR(1)        /* Tabela de Correcao p/ Juros Floor-Plan       */,
cctdij       DATE           /* Data do Inicio do Juros Floor-Plan           */,
cctaup       CHAR(1)        /* Campo Autorizacao Pagto                      */,
             CONSTRAINT ck_cebcct_aup CHECK (cctaup IN (' ','E','A')
                        OR cctaup IS NULL),
cctnap       NUMERIC( 5)    /* Numero da Autorizacao de Pagamento           */,
cctdea       DATE           /* Data da Autorizacao Pagamento                */,
cctrau       CHAR(6)        /* Responsavel Autorizacao de Pagamento (SPSCTR)*/,
ccthau       NUMERIC( 6)    /* Hora Autorizacao Pagamento                   */,
cctage       VARCHAR( 10)   /* Numero da Agencia do Cheque (CH)             */,
cctccn       VARCHAR( 15)   /* Numero de Conta Corrente do (CH)             */,
cctsis       CHAR(3)        /* Sistema que Emitiu Recibo                    */,
             CONSTRAINT ck_cebcct_sis CHECK (cctsis IN ('   ','CEB','VEI')
                        OR cctsis IS NULL),
cctemi       CHAR(6)        /* Emitente do Recibo (GCVEMI) - FK             */,
cctnre       NUMERIC( 6)    /* Numero do Recibo (tb_cebrec)                 */,
cctvat       NUMERIC(11, 2) /* Valor do Abatimento                          */,
cctdda       DATE           /* Data Atualizacao do Valor em Moeda Fiscal    */,
cctdis       CHAR(1)        /* P/ C/C="CH" (cctst1,"S","N") Depositavel ?   */,
             CONSTRAINT ck_cebcct_diz CHECK (cctdis IN (' ','0','1','2',
                                                        '3','4','7','8',
                                                        '9','C','D','L',
                                                        'R','S','N')
                        OR cctdis IS NULL),
cctest       CHAR( 6)       /* Estabelecimento (GCVEMI)                     */,
cctdpo       CHAR(1)        /* P/ C/C="CC" Deposito On-Line (S/N) ?         */,
             CONSTRAINT ck_cebcct_dpo CHECK (cctdpo IN (' ','S','N')
                        OR cctdpo IS NULL),
cctsq1       NUMERIC( 8)    /* Sequencia Utilizada p/ START-MAIOR           */,
cctscc       NUMERIC( 3)    /* Codigo do Sub-Tipo                           */,
cctcdv       NUMERIC( 7)    /* Codigo do Veiculo                            */,
cctiss       CHAR(1)        /* Nota é de Servico (S/N)? -> P/ C/C = "GD"   */,
             CONSTRAINT ck_cebcct_iss CHECK (cctiss IN (' ','S','N')
                        OR cctiss IS NULL),
cctcpt       CHAR(6)        /* Codigo do Portador (tb_tracad)               */,
ccttco       NUMERIC(2)     /* Tipo de Cobranca                             */,
             CONSTRAINT ck_cebcct_tco CHECK (ccttco IN (0,1,2,3)
                        OR ccttco IS NULL),
cctcco       CHAR(1)       /* Codigo de Cobranca                           */,
cctndb       VARCHAR(12)   /* Numero da Duplicata no Banco                 */,
cctbar       VARCHAR(44)   /* Codigo de Barras do Bloqueto                 */,
cctdcc       NUMERIC(2)    /* Dias de Compensacao do Cheque                */,
cctnom       VARCHAR(30)   /* Nome do Conta Corrente (Vem do SRCTAB)       */,
cctndr       VARCHAR(14)   /* Numero do Documento Referencia               */,
cctaln       CHAR(2)       /* Codigo da Alinea de Devolucao do Cheque      */,
ccttpm       CHAR(1)       /* Tipo Movimento 'C'ompra/'V'enda              */,
cctjur       NUMERIC(11, 2) /* Juros a Receber (CNH)                       */,
cctvjm       NUMERIC(11, 2) /* Valor do Juros de Mora (CNH) - Cheques      */,
             CONSTRAINT ck_cebcct_tpm CHECK (ccttpm IN (' ','C','V')
                        OR ccttpm IS NULL),
             CONSTRAINT pk_cctkey PRIMARY KEY (ccttcc,cctre1,cctncc),
             CONSTRAINT fk_ccttcc FOREIGN KEY (ccttcc)
                                  REFERENCES tb_cebtab_tcc (tcccod),
             CONSTRAINT fk_cctre1 FOREIGN KEY (cctre1)
                                  REFERENCES tb_tracad (tracod),
             CONSTRAINT fk_ccttr1 FOREIGN KEY (ccttr1)
                                  REFERENCES tb_tracad (tracod),
             CONSTRAINT fk_ccterc FOREIGN KEY (ccterc)
                                  REFERENCES tb_tracad (tracod),
             CONSTRAINT fk_cctbco FOREIGN KEY (cctbco)
                                  REFERENCES tb_cebtab_bco (bcocod),
             CONSTRAINT fk_cctemp_cpi FOREIGN KEY (cctemp_cpi)
                                      REFERENCES tb_cbaemp (empcod),
/*           CONSTRAINT fk_cctcpi FOREIGN KEY (cctemp_cpi,cctcpi)       */
/*                                REFERENCES tb_cbacta (ctaemp,ctacod), */
             CONSTRAINT fk_cctcpg FOREIGN KEY (cctcpg)
                                  REFERENCES tb_tabcpg (cpgcod),
             CONSTRAINT fk_cctemi FOREIGN KEY (cctemi)
                                  REFERENCES tb_tracad (tracod),
             CONSTRAINT fk_cctcpt FOREIGN KEY (cctcpt)
                                  REFERENCES tb_tracad (tracod)
);
CREATE INDEX ix1_cebcct ON tb_cebcct(ccttcc,ccttr1,cctst1,cctre1,cctdt1,cctsq1);
CREATE INDEX ix2_cebcct ON tb_cebcct(cctst1,cctdt1,cctfl2,ccttcc);
CREATE INDEX ix3_cebcct ON tb_cebcct(cctre1,cctst1,cctdt1,cctfl2,ccttcc);
CREATE INDEX ix4_cebcct ON tb_cebcct(ccttcc,cctst1,cctre1,cctdt1);
CREATE INDEX ix5_cebcct ON tb_cebcct(ccttcc,cctdis,cctre1,ccttr1,cctnct);
CREATE INDEX ix6_cebcct ON tb_cebcct(ccttcc,cctdis,cctre1,cctdat);
CREATE INDEX ix7_cebcct ON tb_cebcct(cctst1,cctdat,cctfl2,ccttcc);
CREATE INDEX ix8_cebcct ON tb_cebcct(cctre1,cctst1,cctdat,ccttcc,cctfl2);
CREATE INDEX ix9_cebcct ON tb_cebcct(cctst1,ccttcc,cctdt1,cctre1);
CREATE INDEX ixA_cebcct ON tb_cebcct(ccttcc,cctre1,cctst1,cctdt1);
CREATE INDEX ixB_cebcct ON tb_cebcct(ccttcc,cctre1,cctdt1,cctst1);
CREATE INDEX ixC_cebcct ON tb_cebcct(cctst1,ccttcc,cctre1,cctdt1);
CREATE INDEX ixD_cebcct ON tb_cebcct(ccttcc,cctscc,cctre1,cctst1,cctdt1);
CREATE INDEX ixE_cebcct ON tb_cebcct(ccttcc,cctst1,cctcpt,ccttco,cctdt1);
CREATE INDEX ixF_cebcct ON tb_cebcct(ccttcc,cctst1,ccttco,cctcpt,cctdt1);
CREATE INDEX ixG_cebcct ON tb_cebcct(cctest,ccttcc,cctre1,cctnct);
CREATE INDEX ixH_cebcct ON tb_cebcct(cctst1,cctfl2,cctre1,cctdt1);
CREATE INDEX ixI_cebcct ON tb_cebcct(cctst1,cctbco,cctdt1,cctre1);
CREATE INDEX ixJ_cebcct ON tb_cebcct(cctst1,cctre1,cctdt1,ccttcc,cctncc,cctsq1);
CREATE INDEX ixK_cebcct ON tb_cebcct(cctcdv,ccttpm,cctdtp,ccttcc,cctncc,cctsq1);
CREATE INDEX ixO0_cebcct ON tb_cebcct(ccttcc,cctncc);
CREATE INDEX ixO1_cebcct ON tb_cebcct(ccttr1,cctst1,cctdt1,cctfl2,ccttcc);
CREATE INDEX ixO2_cebcct ON tb_cebcct(ccttr1,cctst1,ccttcc,cctdt1);
CREATE INDEX ixO3_cebcct ON tb_cebcct(cctst1,ccttcc,cctdtp,cctre1);
CREATE INDEX ixO4_cebcct ON tb_cebcct(cctst1,cctfl2,cctdtp,cctre1);
cekitano
Rank: Programador Júnior
Rank: Programador Júnior
Mensagens: 17
Registrado em: Ter, 13 Nov 2007 9:59 am
Localização: SP

vou verificar esse ponto
obrigado!!
Tineks
Rank: DBA Sênior
Rank: DBA Sênior
Mensagens: 365
Registrado em: Ter, 24 Mai 2005 2:24 pm
Localização: Araraquara - SP
Cristiano (Tineks)
Araraquara - SP

Como o Trevisolli disse, confirme se os parâmetros da sua consulta estão sendo informados.. se o problema não for nos parametros mande a descricao da outra tabela (tb_cebtab_tcc)..

[]'s
cekitano
Rank: Programador Júnior
Rank: Programador Júnior
Mensagens: 17
Registrado em: Ter, 13 Nov 2007 9:59 am
Localização: SP

Boa tarde...conferi via debug e não encontrei nada referente a parametros faltando....
estou postando aqui a criação da segunda tabela...se puderem me ajudar.
Muito Obrigado!!!

Selecionar tudo

CREATE TABLE tb_cebtab_tcc (
tccsts       CHAR(1)       /* Status                        */,
tcccod       CHAR(2)       /* Conta Corrente                               */,
tccnom       VARCHAR2( 30) /* Nome do Conta Corrente                       */,
tccflu       CHAR(1)       /* Fluxo Finan. (0=Disp,1=Rec,2=Pag,N=S/Fluxo)  */,
             CONSTRAINT ck_tabtcc_flu CHECK (tccflu IN ('0','1','2','N',' ')),
tccraz       CHAR(1)       /* Tipo do Razao (b=S/Razao/U=Unico/V=varios)   */,
             CONSTRAINT ck_tabtcc_raz CHECK (tccraz IN (' ','U','V')),
tcctip       CHAR(1)       /* Tipo do C/C (R=Razao,T=Temp,A=Admin)         */,
             CONSTRAINT ck_tabtcc_tip CHECK (tcctip IN ('R','T','A')),
tcctma       CHAR(1)       /* Tipo de Manutencao (F=Fixo/b=não Fixo)       */,
             CONSTRAINT ck_tabtcc_tma CHECK (tcctma IN (' ','F')),
tcccar       CHAR(1)       /* Carac. do Saldo (D=Debito/C=Credito)         */,
             CONSTRAINT ck_tabtcc_car CHECK (tcccar IN ('D','C')),
tccemp_cta   NUMBER( 2)    /* Empresa (tb_cbaemp) - Acesso FK              */,
tcccta       NUMBER(14)    /* Cta Ctbil p/ Razao (Pricipal)  (tb_cbacta)   */,
tccemp_crh   NUMBER( 2)    /* Empresa (tb_cbaemp) - Acesso FK              */,
tcccrh       NUMBER(14)    /* Cta Ctbil p/ Acres/Juros Receb. (tb_cbacta)  */,
tccemp_deh   NUMBER( 2)    /* Empresa (tb_cbaemp) - Acesso FK              */,
tccdeh       NUMBER(14)    /* Cta Ctbil p/ Descontos Concedidos (tb_cbacta)*/,
tccemp_dbh   NUMBER( 2)    /* Empresa (tb_cbaemp) - Acesso FK              */,
tccdbh       NUMBER(14)    /* Cta Ctbil p/ Despesas Bancarias (tb_cbacta)  */,
tccemp_irh   NUMBER( 2)    /* Empresa (tb_cbaemp) - Acesso FK              */,
tccirh       NUMBER(14)    /* Cta Ctbil p/ I.R. Retido na Fonte (tb_cbacta)*/,
tccemp_ach   NUMBER( 2)    /* Empresa (tb_cbaemp) - Acesso FK              */,
tccach       NUMBER(14)    /* Cta Ctbil p/ Acres/Juros Pagos (tb_cbacta)   */,
tccemp_doh   NUMBER( 2)    /* Empresa (tb_cbaemp) - Acesso FK              */,
tccdoh       NUMBER(14)    /* Cta Ctbil p/ Descontos Obtidos (tb_cbacta)   */,
tccemp_muh   NUMBER( 2)    /* Empresa (tb_cbaemp) - Acesso FK              */,
tccmuh       NUMBER(14)    /* Cta Ctbil p/ Multas s/ Principal (tb_cbacta) */,
tccemp_vah   NUMBER( 2)    /* Empresa (tb_cbaemp) - Acesso FK              */,
tccvah       NUMBER(14)    /* Cta Ctbil p/ Variacao Monetaria (tb_cbacta)  */,
tccemp_cpi   NUMBER( 2)    /* Empresa (tb_cbaemp) - Acesso FK              */,
tcccpi       NUMBER(14)    /* Cta Ctbil p/ C/C não Fixo (tb_cbacta)        */,
tcccci       CHAR(1)       /* Utiliza Centro de Custo (S/N) C/C não Fixo   */,
             CONSTRAINT ck_tabtcc_cci CHECK (tcccci IN (' ','S','N')),
tcchsi       NUMBER( 4)    /* Historico padrão p/ C/C não Fixo (tb_cbahst) */,
tccemp_cvv   NUMBER( 2)    /* Empresa (tb_cbaemp) - Acesso FK              */,
tcccvv       NUMBER(14)    /* V.V.Conciliar/Emiss Duplic/Consorcio a Rec   */,
tcchsv       NUMBER( 4)    /* Hist. padrão CX/TE,V.V. Conciliar (tb_cbahst)*/,
tcccna       CHAR(1)       /* Utiliza Numeracao Automatica (S/N)           */,
             CONSTRAINT ck_tabtcc_cna CHECK (tcccna IN (' ','S','N')),
tccnum       NUMBER( 6)    /* Controle de Numeracao Automatica             */,
tccemp_crb   NUMBER( 2)    /* Empresa (tb_cbaemp) - Acesso FK              */,
tcccrb       NUMBER(14)    /* Cta Ctbil p/ Baixa Resultado (tb_cbacta)     */,
tcccrc       CHAR(1)       /* Utiliza C. Custo (S/N) Baixa p/ Resultado    */,
             CONSTRAINT ck_tabtcc_crc CHECK (tcccrc IN (' ','S','N')),
tcccrp       NUMBER( 4)    /* Historico padrão Baixa p/ Resul. (tb_cbahst) */,
tccemp_pte   NUMBER( 2)    /* Empresa (tb_cbaemp) - Acesso FK              */,
tccpte       NUMBER(14)    /* Cta Ctbil Ponte (CEB/GTC) (tb_cbacta)        */,
tccdia       NUMBER( 2)    /* Numero de Dias (p/ c/c GF)                   */,
tccccf       CHAR(1)       /* E C/C de Fabricante (S/N)                    */,
             CONSTRAINT ck_tabtcc_ccf CHECK (tccccf IN (' ','S','N')),
tccred       VARCHAR2( 10) /* Descricao Reduzida do Nome do C/C            */,
tcccti       CHAR(1)       /* Contabiliza na inclusao (S/N)                */,
             CONSTRAINT ck_tabtcc_cti CHECK (tcccti IN (' ','S','N')),
tcccta_emp   NUMBER( 2)    /* Empresa (tb_cbaemp) - Acesso FK              */,
tcccta_ccr   NUMBER( 4)    /* Centro de Responsabilidade (tb_cbaccr)       */,
tcccrh_emp   NUMBER( 2)    /* Empresa (tb_cbaemp) - Acesso FK              */,
tcccrh_ccr   NUMBER( 4)    /* Centro de Responsabilidade (tb_cbaccr)       */,
tccdeh_emp   NUMBER( 2)    /* Empresa (tb_cbaemp) - Acesso FK              */,
tccdeh_ccr   NUMBER( 4)    /* Centro de Responsabilidade (tb_cbaccr)       */,
tccdbh_emp   NUMBER( 2)    /* Empresa (tb_cbaemp) - Acesso FK              */,
tccdbh_ccr   NUMBER( 4)    /* Centro de Responsabilidade (tb_cbaccr)       */,
tccirh_emp   NUMBER( 2)    /* Empresa (tb_cbaemp) - Acesso FK              */,
tccirh_ccr   NUMBER( 4)    /* Centro de Responsabilidade (tb_cbaccr)       */,
tccach_emp   NUMBER( 2)    /* Empresa (tb_cbaemp) - Acesso FK              */,
tccach_ccr   NUMBER( 4)    /* Centro de Responsabilidade (tb_cbaccr)       */,
tccdoh_emp   NUMBER( 2)    /* Empresa (tb_cbaemp) - Acesso FK              */,
tccdoh_ccr   NUMBER( 4)    /* Centro de Responsabilidade (tb_cbaccr)       */,
tccmuh_emp   NUMBER( 2)    /* Empresa (tb_cbaemp) - Acesso FK              */,
tccmuh_ccr   NUMBER( 4)    /* Centro de Responsabilidade (tb_cbaccr)       */,
tccvah_emp   NUMBER( 2)    /* Empresa (tb_cbaemp) - Acesso FK              */,
tccvah_ccr   NUMBER( 4)    /* Centro de Responsabilidade (tb_cbaccr)       */,
tccpte_ccr   NUMBER( 4)    /* Centro de Responsabilidade C.Ponte(tb_cbaccr)*/,
tccpte_ccr_emp NUMBER( 2)  /* Empresa p/ CCR da Conta Ponte     (tb_cbaccr)*/,
tccscc       CHAR(1)       /* Utiliza subtipo de C/C                       */,
tccsfv       CHAR(1)       /* Subtipo Fixo ou Variavel                     */,
             CONSTRAINT pk_tcckey PRIMARY KEY (tcccod),
             CONSTRAINT fk_tccemp_cta FOREIGN KEY (tccemp_cta)
                                      REFERENCES tb_cbaemp (empcod),
             CONSTRAINT fk_tcccta FOREIGN KEY (tccemp_cta,tcccta)
                                  REFERENCES tb_cbacta (ctaemp,ctacod),
             CONSTRAINT fk_tccemp_crh FOREIGN KEY (tccemp_crh)
                                      REFERENCES tb_cbaemp (empcod),
             CONSTRAINT fk_tcccrh FOREIGN KEY (tccemp_crh,tcccrh)
                                  REFERENCES tb_cbacta (ctaemp,ctacod),
             CONSTRAINT fk_tccemp_deh FOREIGN KEY (tccemp_deh)
                                      REFERENCES tb_cbaemp (empcod),
             CONSTRAINT fk_tccdeh FOREIGN KEY (tccemp_deh,tccdeh)
                                  REFERENCES tb_cbacta (ctaemp,ctacod),
             CONSTRAINT fk_tccemp_dbh FOREIGN KEY (tccemp_dbh)
                                      REFERENCES tb_cbaemp (empcod),
             CONSTRAINT fk_tccdbh FOREIGN KEY (tccemp_dbh,tccdbh)
                                  REFERENCES tb_cbacta (ctaemp,ctacod),
             CONSTRAINT fk_tccemp_irh FOREIGN KEY (tccemp_irh)
                                      REFERENCES tb_cbaemp (empcod),
             CONSTRAINT fk_tccirh FOREIGN KEY (tccemp_irh,tccirh)
                                  REFERENCES tb_cbacta (ctaemp,ctacod),
             CONSTRAINT fk_tccemp_ach FOREIGN KEY (tccemp_ach)
                                      REFERENCES tb_cbaemp (empcod),
             CONSTRAINT fk_tccach FOREIGN KEY (tccemp_ach,tccach)
                                  REFERENCES tb_cbacta (ctaemp,ctacod),
             CONSTRAINT fk_tccemp_doh FOREIGN KEY (tccemp_doh)
                                      REFERENCES tb_cbaemp (empcod),
             CONSTRAINT fk_tccdoh FOREIGN KEY (tccemp_doh,tccdoh)
                                  REFERENCES tb_cbacta (ctaemp,ctacod),
             CONSTRAINT fk_tccemp_muh FOREIGN KEY (tccemp_muh)
                                      REFERENCES tb_cbaemp (empcod),
             CONSTRAINT fk_tccmuh FOREIGN KEY (tccemp_muh,tccmuh)
                                  REFERENCES tb_cbacta (ctaemp,ctacod),
             CONSTRAINT fk_tccemp_vah FOREIGN KEY (tccemp_vah)
                                      REFERENCES tb_cbaemp (empcod),
             CONSTRAINT fk_tccvah FOREIGN KEY (tccemp_vah,tccvah)
                                  REFERENCES tb_cbacta (ctaemp,ctacod),
             CONSTRAINT fk_tccemp_cpi FOREIGN KEY (tccemp_cpi)
                                      REFERENCES tb_cbaemp (empcod),
             CONSTRAINT fk_tcccpi FOREIGN KEY (tccemp_cpi,tcccpi)
                                  REFERENCES tb_cbacta (ctaemp,ctacod),
             CONSTRAINT fk_tcchsi FOREIGN KEY (tcchsi)
                                  REFERENCES tb_cbahst (hstcod),
             CONSTRAINT fk_tccemp_cvv FOREIGN KEY (tccemp_cvv)
                                      REFERENCES tb_cbaemp (empcod),
             CONSTRAINT fk_tcccvv FOREIGN KEY (tccemp_cvv,tcccvv)
                                  REFERENCES tb_cbacta (ctaemp,ctacod),
             CONSTRAINT fk_tcchsv FOREIGN KEY (tcchsv)
                                  REFERENCES tb_cbahst (hstcod),
             CONSTRAINT fk_tccemp_crb FOREIGN KEY (tccemp_crb)
                                      REFERENCES tb_cbaemp (empcod),
             CONSTRAINT fk_tcccrb FOREIGN KEY (tccemp_crb,tcccrb)
                                  REFERENCES tb_cbacta (ctaemp,ctacod),
             CONSTRAINT fk_tcccrp FOREIGN KEY (tcccrp)
                                  REFERENCES tb_cbahst (hstcod),
             CONSTRAINT fk_tccemp_pte FOREIGN KEY (tccemp_pte)
                                      REFERENCES tb_cbaemp (empcod),
             CONSTRAINT fk_tccpte FOREIGN KEY (tccemp_pte,tccpte)
                                  REFERENCES tb_cbacta (ctaemp,ctacod),
             CONSTRAINT fk_tcccta_emp FOREIGN KEY (tcccta_emp)
                                      REFERENCES tb_cbaemp (empcod),
             CONSTRAINT fk_tcccta_ccr FOREIGN KEY (tcccta_emp,tcccta_ccr)
                                      REFERENCES tb_cbaccr (ccremp,ccrcod),
             CONSTRAINT fk_tcccrh_emp FOREIGN KEY (tcccrh_emp)
                                      REFERENCES tb_cbaemp (empcod),
             CONSTRAINT fk_tcccrh_ccr FOREIGN KEY (tcccrh_emp,tcccrh_ccr)
                                      REFERENCES tb_cbaccr (ccremp,ccrcod),
             CONSTRAINT fk_tccdeh_emp FOREIGN KEY (tccdeh_emp)
                                      REFERENCES tb_cbaemp (empcod),
             CONSTRAINT fk_tccdeh_ccr FOREIGN KEY (tccdeh_emp,tccdeh_ccr)
                                      REFERENCES tb_cbaccr (ccremp,ccrcod),
             CONSTRAINT fk_tccdbh_emp FOREIGN KEY (tccdbh_emp)
                                      REFERENCES tb_cbaemp (empcod),
             CONSTRAINT fk_tccdbh_ccr FOREIGN KEY (tccdbh_emp,tccdbh_ccr)
                                      REFERENCES tb_cbaccr (ccremp,ccrcod),
             CONSTRAINT fk_tccirh_emp FOREIGN KEY (tccirh_emp)
                                      REFERENCES tb_cbaemp (empcod),
             CONSTRAINT fk_tccirh_ccr FOREIGN KEY (tccirh_emp,tccirh_ccr)
                                      REFERENCES tb_cbaccr (ccremp,ccrcod),
             CONSTRAINT fk_tccach_emp FOREIGN KEY (tccach_emp)
                                      REFERENCES tb_cbaemp (empcod),
             CONSTRAINT fk_tccach_ccr FOREIGN KEY (tccach_emp,tccach_ccr)
                                      REFERENCES tb_cbaccr (ccremp,ccrcod),
             CONSTRAINT fk_tccdoh_emp FOREIGN KEY (tccdoh_emp)
                                      REFERENCES tb_cbaemp (empcod),
             CONSTRAINT fk_tccdoh_ccr FOREIGN KEY (tccdoh_emp,tccdoh_ccr)
                                      REFERENCES tb_cbaccr (ccremp,ccrcod),
             CONSTRAINT fk_tccmuh_emp FOREIGN KEY (tccmuh_emp)
                                      REFERENCES tb_cbaemp (empcod),
             CONSTRAINT fk_tccmuh_ccr FOREIGN KEY (tccmuh_emp,tccmuh_ccr)
                                      REFERENCES tb_cbaccr (ccremp,ccrcod),
             CONSTRAINT fk_tccvah_emp FOREIGN KEY (tccvah_emp)
                                      REFERENCES tb_cbaemp (empcod),
             CONSTRAINT fk_tccvah_ccr FOREIGN KEY (tccvah_emp,tccvah_ccr)
                                      REFERENCES tb_cbaccr (ccremp,ccrcod),
             CONSTRAINT fk_tccpte_ccr FOREIGN KEY (tccemp_pte,tccpte_ccr)
                                      REFERENCES tb_cbaccr (ccremp,ccrcod),
             CONSTRAINT fk_tccpte_ccr_emp FOREIGN KEY (tccpte_ccr_emp)
                                      REFERENCES tb_cbaemp (empcod)
);
Tineks
Rank: DBA Sênior
Rank: DBA Sênior
Mensagens: 365
Registrado em: Ter, 24 Mai 2005 2:24 pm
Localização: Araraquara - SP
Cristiano (Tineks)
Araraquara - SP

Eu criei as tabelas aqui e rodei o select, mas não deu nenhum erro.
você está utilizando qual ferramenta pra fazer essa consulta??
você poderia rodar esse select no SQLPlus e colar aqui no forum pra gente dar uma olhada... se possivel cole o select e o trecho com o erro..

[]'s!
cekitano
Rank: Programador Júnior
Rank: Programador Júnior
Mensagens: 17
Registrado em: Ter, 13 Nov 2007 9:59 am
Localização: SP

olá Tineks...que versão de oracle você está testando?? Eu estou na 8..será que pode ser alguma imcompatibilidade?

comando select:

Selecionar tudo

SELECT tcc&#46;tcccod,tcc&#46;tccnom,tcc&#46;tccflu ,
SELECT SUM&#40;cctval - cctvab&#41; as vet0 FROM tb_cebcct , tb_cebtab_tcc tcc WHERE cctst1 IN&#40;' ','0','8'&#41; AND ccttcc = tcc&#46;tcccod AND cctfl2 = tcc&#46;tccflu AND cctdt1 <= TO_DATE&#40;'12/11/2007','DD/MM/YYYY'&#41;&#41; ,
&#40;SELECT SUM&#40;cctval - cctvab&#41; as vet1 FROM tb_cebcct , tb_cebtab_tcc tcc WHERE cctst1 IN&#40;' ','0','8'&#41; AND ccttcc = tcc&#46;tcccod AND cctfl2 = tcc&#46;tccflu AND cctdt1 > TO_DATE&#40;'12/11/2007','DD/MM/YYYY'&#41; AND cctdt1 <= TO_DATE&#40;'13/11/2007','DD/MM/YYYY'&#41;&#41; ,
&#40;SELECT SUM&#40;cctval - cctvab&#41; as vet2 FROM tb_cebcct , tb_cebtab_tcc tcc WHERE cctst1 IN&#40;' ','0','8'&#41; AND ccttcc = tcc&#46;tcccod AND cctfl2 = tcc&#46;tccflu AND cctdt1 > TO_DATE&#40;'13/11/2007','DD/MM/YYYY'&#41; AND cctdt1 <= TO_DATE&#40;'14/11/2007','DD/MM/YYYY'&#41;&#41; ,
&#40;SELECT SUM&#40;cctval - cctvab&#41; as vet3 FROM tb_cebcct , tb_cebtab_tcc tcc WHERE cctst1 IN&#40;' ','0','8'&#41; AND ccttcc = tcc&#46;tcccod AND cctfl2 = tcc&#46;tccflu AND cctdt1 > TO_DATE&#40;'14/11/2007','DD/MM/YYYY'&#41; AND cctdt1 <= TO_DATE&#40;'15/11/2007','DD/MM/YYYY'&#41;&#41; ,
&#40;SELECT SUM&#40;cctval - cctvab&#41; as vet4 FROM tb_cebcct , tb_cebtab_tcc tcc WHERE cctst1 IN&#40;' ','0','8'&#41; AND ccttcc = tcc&#46;tcccod AND cctfl2 = tcc&#46;tccflu AND cctdt1 > TO_DATE&#40;'15/11/2007','DD/MM/YYYY'&#41; AND cctdt1 <= TO_DATE&#40;'16/11/2007','DD/MM/YYYY'&#41;&#41; ,
&#40;SELECT SUM&#40;cctval - cctvab&#41; as vet5 FROM tb_cebcct , tb_cebtab_tcc tcc WHERE cctst1 IN&#40;' ','0','8'&#41; AND ccttcc = tcc&#46;tcccod AND cctfl2 = tcc&#46;tccflu AND cctdt1 > TO_DATE&#40;'16/11/2007','DD/MM/YYYY'&#41; AND cctdt1 <= TO_DATE&#40;'19/11/2007','DD/MM/YYYY'&#41;&#41; ,
&#40;SELECT SUM&#40;cctval - cctvab&#41; as vet6 FROM tb_cebcct , tb_cebtab_tcc tcc WHERE cctst1 IN&#40;' ','0','8'&#41; AND ccttcc = tcc&#46;tcccod AND cctfl2 = tcc&#46;tccflu AND cctdt1 > TO_DATE&#40;'19/11/2007','DD/MM/YYYY'&#41;&#41; 
FROM tb_cebtab_tcc tcc WHERE tcc&#46;tccflu IN&#40;'1','2'&#41; AND tcc&#46;tcccod NOT IN&#40;'VR','RV'&#41; AND tcc&#46;tccsts <> 'D' AND &#40;EXISTS&#40;SELECT ccte&#46;ccttcc FROM tb_cebcct ccte WHERE ccte&#46;ccttcc = tcc&#46;tcccod AND ccte&#46;cctfl2 = tcc&#46;tccflu AND ccte&#46;cctst1 IN&#40;' ','0','8'&#41; &#41; OR &#40;tcc&#46;tcccod = 'CR'&#41;&#41;
ORDER BY tcc&#46;tccflu,tcc&#46;tcccod
erro:

Selecionar tudo

SQL> /
SELECT SUM(cctval - cctvab) as vet0 FROM tb_cebcct , tb_cebtab_tcc tcc WHERE cctst1 IN(' ','0','8') 
*
ERROR at line 2:
ORA-00936: missing expression
obs: Aqui está o select completo...... para facilitar, no inicio do post tinha colocado apenas um "subselect"... porem dessa ou da outra forma o erro é o mesmo....

Obrigado!!!
Tineks
Rank: DBA Sênior
Rank: DBA Sênior
Mensagens: 365
Registrado em: Ter, 24 Mai 2005 2:24 pm
Localização: Araraquara - SP
Cristiano (Tineks)
Araraquara - SP

O problema é na na segunda linha, está faltando uma aspas no inicio da linha, antes do primeiro select sum...

Selecionar tudo

SELECT tcc.tcccod,tcc.tccnom,tcc.tccflu , 
(SELECT SUM(cctval - cctvab) as vet0 FROM tb_cebcct
tenta ai.!

[]'s
cekitano
Rank: Programador Júnior
Rank: Programador Júnior
Mensagens: 17
Registrado em: Ter, 13 Nov 2007 9:59 am
Localização: SP

Boa...agora deu outro erro

Selecionar tudo

SQL> ed
Wrote file afiedt.buf

  1  SELECT tcc.tcccod,tcc.tccnom,tcc.tccflu ,
  2  'SELECT SUM(cctval - cctvab) as vet0 FROM tb_cebcct , tb_cebtab_tcc tcc WHERE cctst1 IN(' ','0'
  3  (SELECT SUM(cctval - cctvab) as vet1 FROM tb_cebcct , tb_cebtab_tcc tcc WHERE cctst1 IN(' ','0'
  4  (SELECT SUM(cctval - cctvab) as vet2 FROM tb_cebcct , tb_cebtab_tcc tcc WHERE cctst1 IN(' ','0'
  5  (SELECT SUM(cctval - cctvab) as vet3 FROM tb_cebcct , tb_cebtab_tcc tcc WHERE cctst1 IN(' ','0'
  6  (SELECT SUM(cctval - cctvab) as vet4 FROM tb_cebcct , tb_cebtab_tcc tcc WHERE cctst1 IN(' ','0'
  7  (SELECT SUM(cctval - cctvab) as vet5 FROM tb_cebcct , tb_cebtab_tcc tcc WHERE cctst1 IN(' ','0'
  8  (SELECT SUM(cctval - cctvab) as vet6 FROM tb_cebcct , tb_cebtab_tcc tcc WHERE cctst1 IN(' ','0'
  9  FROM tb_cebtab_tcc tcc WHERE tcc.tccflu IN('1','2') AND tcc.tcccod NOT IN('VR','RV') AND tcc.tc
 10* ORDER BY tcc.tccflu,tcc.tcccod
SQL> /
'SELECT SUM(cctval - cctvab) as vet0 FROM tb_cebcct , tb_cebtab_tcc tcc WHERE cctst1 IN(' ','0','8')
                                                                                          *
ERROR at line 2:
ORA-00923: FROM keyword not found where expected

Pergunta: Tenho q substituir o in? me parece q ele ta considerando a primeira aspas do IN(' como fechando a que inseri no inicio correto?

obrigado
Trevisolli
Moderador
Moderador
Mensagens: 2016
Registrado em: Qua, 12 Jan 2005 3:25 pm
Localização: Araraquara - SP
Abraço,

Trevisolli
OCA Oracle PL/SQL Developer Certified Associate
OCP Oracle Forms Developer Certified Professional
Araraquara-SP

Brother,

Faz um teste apenas com '0','8'.
Daí você corrige o espaço, se for o caso.
Ou, caso se trate de sql dinâmico, coloque mais duas aspas:

Selecionar tudo

  in ('' '','0','8')
Editado pela última vez por Trevisolli em Ter, 13 Nov 2007 2:11 pm, em um total de 1 vez.
Tineks
Rank: DBA Sênior
Rank: DBA Sênior
Mensagens: 365
Registrado em: Ter, 24 Mai 2005 2:24 pm
Localização: Araraquara - SP
Cristiano (Tineks)
Araraquara - SP

Poxa amigo,
desculpa mas respondi errado, não é aspas e sim um parêntese.

Selecionar tudo

SELECT tcc.tcccod,tcc.tccnom,tcc.tccflu , 
( SELECT SUM(cctval - cctvab) as vet0 FROM tb_cebcct ....

[]'s
cekitano
Rank: Programador Júnior
Rank: Programador Júnior
Mensagens: 17
Registrado em: Ter, 13 Nov 2007 9:59 am
Localização: SP

Fiz o que você disse para o caso de parametros dinamicos (q é o meu caso)

Selecionar tudo

SELECT tcc.tcccod,tcc.tccnom,tcc.tccflu ,
'SELECT SUM(cctval - cctvab) as vet0 FROM tb_cebcct , tb_cebtab_tcc tcc WHERE cctst1 IN('' ' ','0','8') AND ccttcc = tcc.tcccod AND cctfl2 = tcc.tccflu AND cctdt1 <= TO_DATE('12/11/2007','DD/MM/YYYY')) ,
(SELECT SUM(cctval - cctvab) as vet1 FROM tb_cebcct , tb_cebtab_tcc tcc WHERE cctst1 IN('' ' ','0','8') AND ccttcc = tcc.tcccod AND cctfl2 = tcc.tccflu AND cctdt1 > TO_DATE('12/11/2007','DD/MM/YYYY') AND cctdt1 <= TO_DATE('13/11/2007','DD/MM/YYYY')) ,
(SELECT SUM(cctval - cctvab) as vet2 FROM tb_cebcct , tb_cebtab_tcc tcc WHERE cctst1 IN('' ' ','0','8') AND ccttcc = tcc.tcccod AND cctfl2 = tcc.tccflu AND cctdt1 > TO_DATE('13/11/2007','DD/MM/YYYY') AND cctdt1 <= TO_DATE('14/11/2007','DD/MM/YYYY')) ,
(SELECT SUM(cctval - cctvab) as vet3 FROM tb_cebcct , tb_cebtab_tcc tcc WHERE cctst1 IN('' ' ','0','8') AND ccttcc = tcc.tcccod AND cctfl2 = tcc.tccflu AND cctdt1 > TO_DATE('14/11/2007','DD/MM/YYYY') AND cctdt1 <= TO_DATE('15/11/2007','DD/MM/YYYY')) ,
(SELECT SUM(cctval - cctvab) as vet4 FROM tb_cebcct , tb_cebtab_tcc tcc WHERE cctst1 IN('' ' ','0','8') AND ccttcc = tcc.tcccod AND cctfl2 = tcc.tccflu AND cctdt1 > TO_DATE('15/11/2007','DD/MM/YYYY') AND cctdt1 <= TO_DATE('16/11/2007','DD/MM/YYYY')) ,
(SELECT SUM(cctval - cctvab) as vet5 FROM tb_cebcct , tb_cebtab_tcc tcc WHERE cctst1 IN('' ' ','0','8') AND ccttcc = tcc.tcccod AND cctfl2 = tcc.tccflu AND cctdt1 > TO_DATE('16/11/2007','DD/MM/YYYY') AND cctdt1 <= TO_DATE('19/11/2007','DD/MM/YYYY')) ,
(SELECT SUM(cctval - cctvab) as vet6 FROM tb_cebcct , tb_cebtab_tcc tcc WHERE cctst1 IN('' ' ','0','8') AND ccttcc = tcc.tcccod AND cctfl2 = tcc.tccflu AND cctdt1 > TO_DATE('19/11/2007','DD/MM/YYYY')) '
FROM tb_cebtab_tcc tcc WHERE tcc.tccflu IN('1','2') AND tcc.tcccod NOT IN('VR','RV') AND tcc.tccsts <> 'D' AND (EXISTS(SELECT ccte.ccttcc FROM tb_cebcct ccte WHERE ccte.ccttcc = tcc.tcccod AND ccte.cctfl2 = tcc.tccflu AND ccte.cctst1 IN(' ','0','8') ) OR (tcc.tcccod = 'CR'))
ORDER BY tcc.tccflu,tcc.tcccod
/

Dá esse Erro:

Selecionar tudo

SQL> /
'SELECT SUM(cctval - cctvab) as vet0 FROM tb_cebcct , tb_cebtab_tcc tcc WHERE cctst1 IN('' ' ','0','
                                                                                             *
ERROR at line 2:
ORA-00923: FROM keyword not found where expected
ps : o * está posicionado em IN('' '(aqui)' ... ou seja ... embaixo da terceira aspas simples......

dúvida.... a aspas simples q abri logo antes do select sum devo fechar antes do proximo select sum, ou apos o ultimo select sum (antes do from)

obrigado
Trevisolli
Moderador
Moderador
Mensagens: 2016
Registrado em: Qua, 12 Jan 2005 3:25 pm
Localização: Araraquara - SP
Abraço,

Trevisolli
OCA Oracle PL/SQL Developer Certified Associate
OCP Oracle Forms Developer Certified Professional
Araraquara-SP

Assim broter:

('' -> duas aspas simples abrindo +
-> um espaço +
'') -> duas aspas simples fechando (sempre juntas)

qualquer coisa, copie esse código abaixo:

Selecionar tudo

 in ('' '', '0','8')

É pra funcionar brother.
qualquer coisa, manda ai.
Tineks
Rank: DBA Sênior
Rank: DBA Sênior
Mensagens: 365
Registrado em: Ter, 24 Mai 2005 2:24 pm
Localização: Araraquara - SP
Cristiano (Tineks)
Araraquara - SP

Opa,

se seu select for dinamico você tem q se atentar a aspas sim, como o Trevisolli comentou acima..
mas esse select que você rodou está com um erro no começo da segunda linha..

Selecionar tudo

SELECT tcc.tcccod,tcc.tccnom,tcc.tccflu , 
'SELECT SUM
essa aspas no começo da linha ter q ser subtituida pelo parêntese..
abaixo segue o select todo com essa linha corrigida..

Selecionar tudo

SELECT tcc.tcccod,tcc.tccnom,tcc.tccflu , 
(SELECT SUM(cctval - cctvab) as vet0 FROM tb_cebcct , tb_cebtab_tcc tcc WHERE cctst1 IN(' ','0','8') AND ccttcc = tcc.tcccod AND cctfl2 = tcc.tccflu AND cctdt1 <= TO_DATE('12/11/2007','DD/MM/YYYY')) , 
(SELECT SUM(cctval - cctvab) as vet1 FROM tb_cebcct , tb_cebtab_tcc tcc WHERE cctst1 IN(' ','0','8') AND ccttcc = tcc.tcccod AND cctfl2 = tcc.tccflu AND cctdt1 > TO_DATE('12/11/2007','DD/MM/YYYY') AND cctdt1 <= TO_DATE('13/11/2007','DD/MM/YYYY')) , 
(SELECT SUM(cctval - cctvab) as vet2 FROM tb_cebcct , tb_cebtab_tcc tcc WHERE cctst1 IN(' ','0','8') AND ccttcc = tcc.tcccod AND cctfl2 = tcc.tccflu AND cctdt1 > TO_DATE('13/11/2007','DD/MM/YYYY') AND cctdt1 <= TO_DATE('14/11/2007','DD/MM/YYYY')) , 
(SELECT SUM(cctval - cctvab) as vet3 FROM tb_cebcct , tb_cebtab_tcc tcc WHERE cctst1 IN(' ','0','8') AND ccttcc = tcc.tcccod AND cctfl2 = tcc.tccflu AND cctdt1 > TO_DATE('14/11/2007','DD/MM/YYYY') AND cctdt1 <= TO_DATE('15/11/2007','DD/MM/YYYY')) , 
(SELECT SUM(cctval - cctvab) as vet4 FROM tb_cebcct , tb_cebtab_tcc tcc WHERE cctst1 IN(' ','0','8') AND ccttcc = tcc.tcccod AND cctfl2 = tcc.tccflu AND cctdt1 > TO_DATE('15/11/2007','DD/MM/YYYY') AND cctdt1 <= TO_DATE('16/11/2007','DD/MM/YYYY')) , 
(SELECT SUM(cctval - cctvab) as vet5 FROM tb_cebcct , tb_cebtab_tcc tcc WHERE cctst1 IN(' ','0','8') AND ccttcc = tcc.tcccod AND cctfl2 = tcc.tccflu AND cctdt1 > TO_DATE('16/11/2007','DD/MM/YYYY') AND cctdt1 <= TO_DATE('19/11/2007','DD/MM/YYYY')) , 
(SELECT SUM(cctval - cctvab) as vet6 FROM tb_cebcct , tb_cebtab_tcc tcc WHERE cctst1 IN(' ','0','8') AND ccttcc = tcc.tcccod AND cctfl2 = tcc.tccflu AND cctdt1 > TO_DATE('19/11/2007','DD/MM/YYYY')) 
FROM tb_cebtab_tcc tcc WHERE tcc.tccflu IN('1','2') AND tcc.tcccod NOT IN('VR','RV') AND tcc.tccsts <> 'D' AND (EXISTS(SELECT ccte.ccttcc FROM tb_cebcct ccte WHERE ccte.ccttcc = tcc.tcccod AND ccte.cctfl2 = tcc.tccflu AND ccte.cctst1 IN(' ','0','8') ) OR (tcc.tcccod = 'CR')) 
ORDER BY tcc.tccflu,tcc.tcccod 
tenta ai..

[]'s
cekitano
Rank: Programador Júnior
Rank: Programador Júnior
Mensagens: 17
Registrado em: Ter, 13 Nov 2007 9:59 am
Localização: SP

Fiz as seguintes alterações :

- Retirei da clausula WHERE o IN (Apenas para testar) e eliminarmos esse erro de aspas simples com relação a parametros dinamicos ok? Depois volto essa consitencia.

- Substitui a aspa logo no inicio do select sum conforme dica por parenteses...só que ai voltou a dar o erro logo do inicio....

sql :

Selecionar tudo

SELECT tcc&#46;tcccod,tcc&#46;tccnom,tcc&#46;tccflu ,
&#40;SELECT SUM&#40;cctval - cctvab&#41; as vet0 FROM tb_cebcct , tb_cebtab_tcc tcc WHERE ccttcc = tcc&#46;tcccod AND cctfl2 = tcc&#46;tccflu AND cctdt1 <= TO_DATE&#40;'12/11/2007','DD/MM/YYYY'&#41;&#41; ,
&#40;SELECT SUM&#40;cctval - cctvab&#41; as vet1 FROM tb_cebcct , tb_cebtab_tcc tcc WHERE ccttcc = tcc&#46;tcccod AND cctfl2 = tcc&#46;tccflu AND cctdt1 > TO_DATE&#40;'12/11/2007','DD/MM/YYYY'&#41; AND cctdt1 <= TO_DATE&#40;'13/11/2007','DD/MM/YYYY'&#41;&#41; ,
&#40;SELECT SUM&#40;cctval - cctvab&#41; as vet2 FROM tb_cebcct , tb_cebtab_tcc tcc WHERE ccttcc = tcc&#46;tcccod AND cctfl2 = tcc&#46;tccflu AND cctdt1 > TO_DATE&#40;'13/11/2007','DD/MM/YYYY'&#41; AND cctdt1 <= TO_DATE&#40;'14/11/2007','DD/MM/YYYY'&#41;&#41; ,
&#40;SELECT SUM&#40;cctval - cctvab&#41; as vet3 FROM tb_cebcct , tb_cebtab_tcc tcc WHERE ccttcc = tcc&#46;tcccod AND cctfl2 = tcc&#46;tccflu AND cctdt1 > TO_DATE&#40;'14/11/2007','DD/MM/YYYY'&#41; AND cctdt1 <= TO_DATE&#40;'15/11/2007','DD/MM/YYYY'&#41;&#41; ,
&#40;SELECT SUM&#40;cctval - cctvab&#41; as vet4 FROM tb_cebcct , tb_cebtab_tcc tcc WHERE ccttcc = tcc&#46;tcccod AND cctfl2 = tcc&#46;tccflu AND cctdt1 > TO_DATE&#40;'15/11/2007','DD/MM/YYYY'&#41; AND cctdt1 <= TO_DATE&#40;'16/11/2007','DD/MM/YYYY'&#41;&#41; ,
&#40;SELECT SUM&#40;cctval - cctvab&#41; as vet5 FROM tb_cebcct , tb_cebtab_tcc tcc WHERE ccttcc = tcc&#46;tcccod AND cctfl2 = tcc&#46;tccflu AND cctdt1 > TO_DATE&#40;'16/11/2007','DD/MM/YYYY'&#41; AND cctdt1 <= TO_DATE&#40;'19/11/2007','DD/MM/YYYY'&#41;&#41; ,
&#40;SELECT SUM&#40;cctval - cctvab&#41; as vet6 FROM tb_cebcct , tb_cebtab_tcc tcc WHERE ccttcc = tcc&#46;tcccod AND cctfl2 = tcc&#46;tccflu AND cctdt1 > TO_DATE&#40;'19/11/2007','DD/MM/YYYY'&#41;&#41; 
FROM tb_cebtab_tcc tcc WHERE tcc&#46;tccflu IN&#40;'1','2'&#41; AND tcc&#46;tcccod NOT IN&#40;'VR','RV'&#41; AND tcc&#46;tccsts <> 'D' AND &#40;EXISTS&#40;SELECT ccte&#46;ccttcc FROM tb_cebcct ccte WHERE ccte&#46;ccttcc = tcc&#46;tcccod AND ccte&#46;cctfl2 = tcc&#46;tccflu &#41; OR &#40;tcc&#46;tcccod = 'CR'&#41;&#41;
ORDER BY tcc&#46;tccflu,tcc&#46;tcccod
/
erro:

Selecionar tudo

SQL> /
(SELECT SUM(cctval - cctvab) as vet0 FROM tb_cebcct , tb_cebtab_tcc tcc WHERE ccttcc = tcc.tcccod AN
 *
ERROR at line 2:
ORA-00936: missing expression
ps: O * esta logo abaixo do "S" do Select SUM


Desculpem estar enchendo tanto..mais é que realmente não sei como corrigir isso..... realmente existe esse erro na linha 2 conforme citado...mais não sei como corrigir......

Obrigado!!
Tineks
Rank: DBA Sênior
Rank: DBA Sênior
Mensagens: 365
Registrado em: Ter, 24 Mai 2005 2:24 pm
Localização: Araraquara - SP
Cristiano (Tineks)
Araraquara - SP

Amigo,

esse erro q deu foi tentando rodar o select interno e não todo o select q você tem? se você quiser rodar somente o select de dentro você não precisa colocar o parentes antes.. foi isso aqiu que você tentou fazer?

Selecionar tudo

SQL> SELECT SUM(cctval - cctvab) as vet0 FROM tb_cebcct , tb_cebtab_tcc tcc WHERE ccttcc = tcc.tccco
d AND cctfl2 = tcc.tccflu AND cctdt1 <= TO_DATE('12/11/2007','DD/MM/YYYY')
  2  /

     VET0
---------

[]'s
cekitano
Rank: Programador Júnior
Rank: Programador Júnior
Mensagens: 17
Registrado em: Ter, 13 Nov 2007 9:59 am
Localização: SP

o erro foi apresentado quando tentei rodar todo o comando sql.....

Selecionar tudo

SELECT tcc.tcccod,tcc.tccnom,tcc.tccflu ,
(SELECT SUM(cctval - cctvab) as vet0 FROM tb_cebcct , tb_cebtab_tcc tcc WHERE ccttcc = tcc.tcccod AND cctfl2 = tcc.tccflu AND cctdt1 <= TO_DATE('12/11/2007','DD/MM/YYYY')) ,
(SELECT SUM(cctval - cctvab) as vet1 FROM tb_cebcct , tb_cebtab_tcc tcc WHERE ccttcc = tcc.tcccod AND cctfl2 = tcc.tccflu AND cctdt1 > TO_DATE('12/11/2007','DD/MM/YYYY') AND cctdt1 <= TO_DATE('13/11/2007','DD/MM/YYYY')) ,
(SELECT SUM(cctval - cctvab) as vet2 FROM tb_cebcct , tb_cebtab_tcc tcc WHERE ccttcc = tcc.tcccod AND cctfl2 = tcc.tccflu AND cctdt1 > TO_DATE('13/11/2007','DD/MM/YYYY') AND cctdt1 <= TO_DATE('14/11/2007','DD/MM/YYYY')) ,
(SELECT SUM(cctval - cctvab) as vet3 FROM tb_cebcct , tb_cebtab_tcc tcc WHERE ccttcc = tcc.tcccod AND cctfl2 = tcc.tccflu AND cctdt1 > TO_DATE('14/11/2007','DD/MM/YYYY') AND cctdt1 <= TO_DATE('15/11/2007','DD/MM/YYYY')) ,
(SELECT SUM(cctval - cctvab) as vet4 FROM tb_cebcct , tb_cebtab_tcc tcc WHERE ccttcc = tcc.tcccod AND cctfl2 = tcc.tccflu AND cctdt1 > TO_DATE('15/11/2007','DD/MM/YYYY') AND cctdt1 <= TO_DATE('16/11/2007','DD/MM/YYYY')) ,
(SELECT SUM(cctval - cctvab) as vet5 FROM tb_cebcct , tb_cebtab_tcc tcc WHERE ccttcc = tcc.tcccod AND cctfl2 = tcc.tccflu AND cctdt1 > TO_DATE('16/11/2007','DD/MM/YYYY') AND cctdt1 <= TO_DATE('19/11/2007','DD/MM/YYYY')) ,
(SELECT SUM(cctval - cctvab) as vet6 FROM tb_cebcct , tb_cebtab_tcc tcc WHERE ccttcc = tcc.tcccod AND cctfl2 = tcc.tccflu AND cctdt1 > TO_DATE('19/11/2007','DD/MM/YYYY'))
FROM tb_cebtab_tcc tcc WHERE tcc.tccflu IN('1','2') AND tcc.tcccod NOT IN('VR','RV') AND tcc.tccsts <> 'D' AND (EXISTS(SELECT ccte.ccttcc FROM tb_cebcct ccte WHERE ccte.ccttcc = tcc.tcccod AND ccte.cctfl2 = tcc.tccflu ) OR (tcc.tcccod = 'CR'))
ORDER BY tcc.tccflu,tcc.tcccod


se executo um a um ele roda sem problemas...o problema esta quando tento rodar o bloco todo acima......

obrigado
Tineks
Rank: DBA Sênior
Rank: DBA Sênior
Mensagens: 365
Registrado em: Ter, 24 Mai 2005 2:24 pm
Localização: Araraquara - SP
Cristiano (Tineks)
Araraquara - SP

Olá

eu rodei ele aqui, não apresentou nenhum erro,
Estou colando o select aqui, por favor da uma coparada com o seu..

Selecionar tudo

SQL> SELECT tcc.tcccod,tcc.tccnom,tcc.tccflu , 
  2  (SELECT SUM(cctval - cctvab) as vet0 FROM tb_cebcct , tb_cebtab_tcc tcc WHERE ccttcc = tcc.tccc
od AND cctfl2 = tcc.tccflu AND cctdt1 <= TO_DATE('12/11/2007','DD/MM/YYYY')) , 
  3  (SELECT SUM(cctval - cctvab) as vet1 FROM tb_cebcct , tb_cebtab_tcc tcc WHERE ccttcc = tcc.tccc
od AND cctfl2 = tcc.tccflu AND cctdt1 > TO_DATE('12/11/2007','DD/MM/YYYY') AND cctdt1 <= TO_DATE('13
/11/2007','DD/MM/YYYY')) , 
  4  (SELECT SUM(cctval - cctvab) as vet2 FROM tb_cebcct , tb_cebtab_tcc tcc WHERE ccttcc = tcc.tccc
od AND cctfl2 = tcc.tccflu AND cctdt1 > TO_DATE('13/11/2007','DD/MM/YYYY') AND cctdt1 <= TO_DATE('14
/11/2007','DD/MM/YYYY')) , 
  5  (SELECT SUM(cctval - cctvab) as vet3 FROM tb_cebcct , tb_cebtab_tcc tcc WHERE ccttcc = tcc.tccc
od AND cctfl2 = tcc.tccflu AND cctdt1 > TO_DATE('14/11/2007','DD/MM/YYYY') AND cctdt1 <= TO_DATE('15
/11/2007','DD/MM/YYYY')) , 
  6  (SELECT SUM(cctval - cctvab) as vet4 FROM tb_cebcct , tb_cebtab_tcc tcc WHERE ccttcc = tcc.tccc
od AND cctfl2 = tcc.tccflu AND cctdt1 > TO_DATE('15/11/2007','DD/MM/YYYY') AND cctdt1 <= TO_DATE('16
/11/2007','DD/MM/YYYY')) , 
  7  (SELECT SUM(cctval - cctvab) as vet5 FROM tb_cebcct , tb_cebtab_tcc tcc WHERE ccttcc = tcc.tccc
od AND cctfl2 = tcc.tccflu AND cctdt1 > TO_DATE('16/11/2007','DD/MM/YYYY') AND cctdt1 <= TO_DATE('19
/11/2007','DD/MM/YYYY')) , 
  8  (SELECT SUM(cctval - cctvab) as vet6 FROM tb_cebcct , tb_cebtab_tcc tcc WHERE ccttcc = tcc.tccc
od AND cctfl2 = tcc.tccflu AND cctdt1 > TO_DATE('19/11/2007','DD/MM/YYYY')) 
  9  FROM tb_cebtab_tcc tcc WHERE tcc.tccflu IN('1','2') AND tcc.tcccod NOT IN('VR','RV') AND tcc.tc
csts <> 'D' AND (EXISTS(SELECT ccte.ccttcc FROM tb_cebcct ccte WHERE ccte.ccttcc = tcc.tcccod AND cc
te.cctfl2 = tcc.tccflu ) OR (tcc.tcccod = 'CR')) 
 10  ORDER BY tcc.tccflu,tcc.tcccod
 11  /

no rows selected

SQL> 
se puder rode seu select no SQLPlus e cole ele e o erro aqui pra nós.

[]'s
cekitano
Rank: Programador Júnior
Rank: Programador Júnior
Mensagens: 17
Registrado em: Ter, 13 Nov 2007 9:59 am
Localização: SP

executei exatamente o código que você postou ai....

erro:

Selecionar tudo

SQL> /
    (SELECT SUM(cctval - cctvab) as vet0 FROM tb_cebcct , tb_cebtab_tcc tcc WHERE ccttcc = tcc.tccco
     *
ERROR at line 2:
ORA-00936: missing expression
(*) no "S" do Select Sum


Que versão de oracle você tem ai???
Tineks
Rank: DBA Sênior
Rank: DBA Sênior
Mensagens: 365
Registrado em: Ter, 24 Mai 2005 2:24 pm
Localização: Araraquara - SP
Cristiano (Tineks)
Araraquara - SP

O banco é o 10g,

Selecionar tudo

SQL*Plus: Release 8.0.6.0.0 - Production on Tue Nov 13 16:45:42 2007

(c) Copyright 1999 Oracle Corporation.  All rights reserved.


Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - 64bit Production
With the Partitioning, OLAP and Data Mining options
qual a versao que você utiliza?

[]'s
cekitano
Rank: Programador Júnior
Rank: Programador Júnior
Mensagens: 17
Registrado em: Ter, 13 Nov 2007 9:59 am
Localização: SP

to na versao 8

Selecionar tudo

SQL*Plus: Release 8.0.5.0.0 - Production on Tue Nov 13 16:32:12 2007

(c) Copyright 1998 Oracle Corporation.  All rights reserved.


Connected to:
Oracle8 Release 8.0.5.0.0 - Production
PL/SQL Release 8.0.5.0.0 - Production
será que é alguma imcompatibilidade? tu já viu algo desse tipo?

obrigado!
Tineks
Rank: DBA Sênior
Rank: DBA Sênior
Mensagens: 365
Registrado em: Ter, 24 Mai 2005 2:24 pm
Localização: Araraquara - SP
Cristiano (Tineks)
Araraquara - SP

Então,

não sei se nessa versão teria algum problema, acho estranho pois esse tipo de select, com subconsulta é simples e bem tradicional, acredito que não seja problema de banco não, vamos aguardar e ver se alguém do fórum pode nos auxiliar com essa dúvida..

[]'s
rogenaro
Rank: DBA Pleno
Rank: DBA Pleno
Mensagens: 232
Registrado em: Sex, 30 Mar 2007 7:26 pm
Localização: Londrina - PR
Rafael O. Genaro

Já que você disse que está com a versão 8, esta consulta está dentro de um bloco pl/sql, ou é apenas sql "puro"?

Isso porque o parser de PL/SQL do banco em versões anteriores à 9 não permite certos tipos de consulta (colocar uma sub-query dentro da lista de campos retornados pelo select, como você está fazendo, é um deles) que funcionam normalmente fora de um bloco PL/SQL.

Agora se a consulta estiver sendo executada diretamente via SQL, não sei o que poderia estar acontecendo... na versão 8.1.7 do banco ao menos posso garantir que este tipo de consulta funciona nessas condições...
cekitano
Rank: Programador Júnior
Rank: Programador Júnior
Mensagens: 17
Registrado em: Ter, 13 Nov 2007 9:59 am
Localização: SP

olá rogenaro....
Esse é um comando sql "puro" que estou executando via programa.....
o que fiz foi fazer um debug e pegar exatamente o comando que está sendo executado no banco.
E o erro que me retorna é sempre o mesmo...independente se estou rodando via aplicação ou diretamente no sql plus....

Será que esse erro pode ter alguma coisa a ver com indices das tabelas ou coisa assim? realmente não sei como solucionar.....

obrigado!
rogenaro
Rank: DBA Pleno
Rank: DBA Pleno
Mensagens: 232
Registrado em: Sex, 30 Mar 2007 7:26 pm
Localização: Londrina - PR
Rafael O. Genaro

cekitano,

de acordo com este documento, este tipo de consulta foi implementada na versão 8i (8.1.5 em diante), e portanto não você não vai conseguir executá-la na versão 8.0.5...

A consulta interira é esta que você postou? Pelo jeito vai ser necessário reescrevê-la de uma outra forma, trazendo os resultados já no corpo da query (usando crosstab, e fazendo a quebra por dia...)
rogenaro
Rank: DBA Pleno
Rank: DBA Pleno
Mensagens: 232
Registrado em: Sex, 30 Mar 2007 7:26 pm
Localização: Londrina - PR
Rafael O. Genaro

Dá uma olhada nessa consulta (não entendi muito bem o que a sua consulta estava considerando como parâmetros, e o que ela estava retornando, mas dá pra ter uma idéia...), acho que ela funciona sem problemas na sua versão (só deu pra testar na 10g, mas acredito que não usei nenhuma funcionalidade recente... :P)

Selecionar tudo

select tcccod
     , tccflu
     , sum(semana_anterior) semana_anterior
     , sum(seg) seg
     , sum(ter) ter
     , sum(qua) qua
     , sum(qui) qui
     , sum(sex_sab_dom) sex_sab_dom
     , sum(proxima_semana) proxima_semana
from   (
        select tmp.tcccod
             , tmp.tccflu
             , decode( greatest(dat, trunc(sysdate, 'D')+1)
                     , trunc(sysdate, 'D')+1, val
                     , 0
                     ) semana_anterior
             , decode( least(dat, trunc(sysdate, 'D')+2)
                     , decode( greatest(dat, trunc(sysdate, 'D') + 1.00001)
                             , dat, dat
                             , null
                             ), val
                     , 0
                     ) seg

             , decode( least(dat, trunc(sysdate, 'D')+3)
                     , decode( greatest(dat, trunc(sysdate, 'D') + 2.00001)
                             , dat, dat
                             , null
                             ), val
                     , 0
                     ) ter

             , decode( least(dat, trunc(sysdate, 'D')+4)
                     , decode( greatest(dat, trunc(sysdate, 'D') + 3.00001)
                             , dat, dat
                             , null
                             ), val
                     , 0
                     ) qua

             , decode( least(dat, trunc(sysdate, 'D')+5)
                     , decode( greatest(dat, trunc(sysdate, 'D') + 4.00001)
                             , dat, dat
                             , null
                             ), val
                     , 0
                     ) qui

             , decode( least(dat, trunc(sysdate, 'D')+8)
                     , decode( greatest(dat, trunc(sysdate, 'D') + 5.00001)
                             , dat, dat
                             , null
                             ), val
                     , 0
                     ) sex_sab_dom

             , decode( least(dat, trunc(sysdate, 'D')+8.00001)
                     , trunc(sysdate, 'D')+8.00001, val
                     , 0
                     ) proxima_semana
        from
        (
          select (cctval - cctvab) val
               , cctdt1 dat
               , tcc.tcccod
               , tcc.tccflu
          from   tb_cebcct
               , tb_cebtab_tcc tcc
          where  cctst1 in (' ', '0', '8')
          and    ccttcc  = tcc.tcccod
          and    cctfl2  = tcc.tccflu
       ) tmp
     , tb_cebtab_tcc tcc
where  tcc.tccflu in ('1', '2')
and    tcc.tcccod not in ('VR', 'RV')
and    tcc.tccsts <> 'D'
and    tmp.tcccod  = tcc.tcccod
and    tmp.tccflu  = tcc.tccflu
and    exists (
                select ccte.ccttcc
                from   tb_cebcct ccte
                where  ccte.ccttcc = tcc.tcccod
                and    ccte.cctfl2 = tcc.tccflu
                and    ccte.cctst1 in (' ', '0', '8')
              )
              or
              (
                tcc.tcccod = 'CR'
              )
)
group by tcccod, tccflu;
Espero que dê pra dar uma ajuda.
cekitano
Rank: Programador Júnior
Rank: Programador Júnior
Mensagens: 17
Registrado em: Ter, 13 Nov 2007 9:59 am
Localização: SP

Muito obrigado pela ajuda....
Vou dar uma olhada nesse código e documento que postou.....
Vou ver o que faço e depois posto o resultado ok??

Mais uma vez obrigado a todos...

Abraços
wolf_goe
Rank: Estagiário Júnior
Rank: Estagiário Júnior
Mensagens: 2
Registrado em: Sáb, 17 Nov 2007 2:21 pm
Localização: São Paulo - SP

Nào sei se você já resolveu, mas eu testei aqui e não deu nenhum erro. Apenas faltava mesmo um parêntese...:

Selecionar tudo

SELECT tcc.tcccod,tcc.tccnom,tcc.tccflu , 
	(SELECT SUM(cctval - cctvab) as vet0 
	FROM tb_cebcct , tb_cebtab_tcc tcc 
	WHERE cctst1 IN(' ','0','8') 
		AND ccttcc = tcc.tcccod 
		AND cctfl2 = tcc.tccflu 
		AND cctdt1 <= TO_DATE('12/11/2007','DD/MM/YYYY')) , 
	(SELECT SUM(cctval - cctvab) as vet1 
	FROM tb_cebcct , tb_cebtab_tcc tcc 
	WHERE cctst1 IN(' ','0','8') 
		AND ccttcc = tcc.tcccod 
		AND cctfl2 = tcc.tccflu 
		AND cctdt1 > TO_DATE('12/11/2007','DD/MM/YYYY') 
		AND cctdt1 <= TO_DATE('13/11/2007','DD/MM/YYYY')) , 
	(SELECT SUM(cctval - cctvab) as vet2 
	FROM tb_cebcct , tb_cebtab_tcc tcc 
	WHERE cctst1 IN(' ','0','8') 
		AND ccttcc = tcc.tcccod 
		AND cctfl2 = tcc.tccflu 
		AND cctdt1 > TO_DATE('13/11/2007','DD/MM/YYYY') 
		AND cctdt1 <= TO_DATE('14/11/2007','DD/MM/YYYY')) , 
	(SELECT SUM(cctval - cctvab) as vet3 
	FROM tb_cebcct , tb_cebtab_tcc tcc 
	WHERE cctst1 IN(' ','0','8') 
		AND ccttcc = tcc.tcccod 
		AND cctfl2 = tcc.tccflu 
		AND cctdt1 > TO_DATE('14/11/2007','DD/MM/YYYY') 
		AND cctdt1 <= TO_DATE('15/11/2007','DD/MM/YYYY')) , 
	(SELECT SUM(cctval - cctvab) as vet4 
	FROM tb_cebcct , tb_cebtab_tcc tcc 
	WHERE cctst1 IN(' ','0','8') 
		AND ccttcc = tcc.tcccod 
		AND cctfl2 = tcc.tccflu 
		AND cctdt1 > TO_DATE('15/11/2007','DD/MM/YYYY') 
		AND cctdt1 <= TO_DATE('16/11/2007','DD/MM/YYYY')) , 
	(SELECT SUM(cctval - cctvab) as vet5 
	FROM tb_cebcct , tb_cebtab_tcc tcc 
	WHERE cctst1 IN(' ','0','8') 
		AND ccttcc = tcc.tcccod 
		AND cctfl2 = tcc.tccflu 
		AND cctdt1 > TO_DATE('16/11/2007','DD/MM/YYYY') 
		AND cctdt1 <= TO_DATE('19/11/2007','DD/MM/YYYY')) , 
	(SELECT SUM(cctval - cctvab) as vet6 
	FROM tb_cebcct , tb_cebtab_tcc tcc 
	WHERE cctst1 IN(' ','0','8') 
		AND ccttcc = tcc.tcccod 
		AND cctfl2 = tcc.tccflu 
		AND cctdt1 > TO_DATE('19/11/2007','DD/MM/YYYY')) 
FROM 
	tb_cebtab_tcc tcc 
WHERE 
	tcc.tccflu IN('1','2') 
	AND tcc.tcccod NOT IN('VR','RV') AND 
	tcc.tccsts <> 'D' 
	AND (EXISTS(SELECT ccte.ccttcc 
			FROM tb_cebcct ccte 
			WHERE ccte.ccttcc = tcc.tcccod 
				AND ccte.cctfl2 = tcc.tccflu 
				AND ccte.cctst1 IN(' ','0','8') ) 
				OR (tcc.tcccod = 'CR')) 
ORDER BY 
	tcc.tccflu,tcc.tcccod 
/
Responder
  • Informação
  • Quem está online

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