Caro Osvaldo,

Com relacao modelagem, fa as verifiquei e alterei da forma correta. Com
relacao ao esquemas, irei implementa-los, pois nao sabia dessa alternativa.
No entanto, ainda continuo com a duvida... No meu select, conforme abeixo,
ele apenas me traz as contas analiticas.

select a.conta, a.nome, sum(b.valor) as valor from plano_conta a  left join
lancamento_contabil b ON
substr(a.conta,1,4) = substr(b.conta,1,4)
group by a.conta, a.nome order by a.conta

Emerson

Em 04/02/08, Osvaldo Kussama <[EMAIL PROTECTED]> escreveu:
>
>
> --- emerson lopes <[EMAIL PROTECTED]> escreveu:
>
> >
> > CREATE TABLE plano_conta
> > (
> >   conta character(10) NOT NULL, -- Codigo do plano
> > de conta
> >   id_empresa integer NOT NULL,
> >   nome character(50), -- descricao da conta
> >   debcre character(10), -- Debito ou Credito
> >   click boolean,
> >   CONSTRAINT "id_plano_Conta" PRIMARY KEY (conta,
> > id_empresa)
> > )
> > WITHOUT OIDS;
> > ALTER TABLE plano_conta OWNER TO "Administrador";
> > COMMENT ON TABLE plano_conta IS 'Plano de Contas';
> > COMMENT ON COLUMN plano_conta.conta IS 'Codigo do
> > plano de conta';
> > COMMENT ON COLUMN plano_conta.nome IS 'nome da
> > conta';
> > COMMENT ON COLUMN plano_conta.debcre IS 'Debito ou
> > Credito';
> >
> >
> > CREATE TABLE lancamento_contabil
> > (
> >   id serial NOT NULL, -- id lancamento contabil
> >   id_empresa integer NOT NULL DEFAULT 0, -- id
> > empresa
> >   data date, -- data
> >   operacao character(15), -- operacao
> >   conta character(12), -- conta plano de contas
> >   debcre character(10), -- debito ou credito
> >   valor numeric(14,2) DEFAULT 0, -- valor do
> > lancamento
> >   CONSTRAINT pk_lancamento_contabil PRIMARY KEY
> > (id_empresa, id)
> > )
> > WITHOUT OIDS;
> > ALTER TABLE lancamento_contabil OWNER TO
> > "Administrador";
> > COMMENT ON TABLE lancamento_contabil IS 'lancamento
> > contabil';
> > COMMENT ON COLUMN lancamento_contabil.id IS 'id
> > lancamento contabil';
> > COMMENT ON COLUMN lancamento_contabil.id_empresa IS
> > 'id empresa';
> > COMMENT ON COLUMN lancamento_contabil.data IS
> > 'data';
> > COMMENT ON COLUMN lancamento_contabil.operacao IS
> > 'operacao';
> > COMMENT ON COLUMN lancamento_contabil.conta IS
> > 'conta centro de custos';
> > COMMENT ON COLUMN lancamento_contabil.debcre IS
> > 'debito ou credito';
> > COMMENT ON COLUMN lancamento_contabil.valor IS
> > 'valor do lancamento';
> >
>
>
> Dúvida: lancamento_contabil.conta se refere a
> plano_conta.conta?
>
> Pergunto porque, apesar dos comentários, o primeiro
> está definido como  character(10) e o segundo como
> character(12).
>
> Por quê não utilizar chave estrangeira? Vide "5.3.5.
> Chaves Estrangeiras" em:
> http://pgdocptbr.sourceforge.net/pg80/ddl-constraints.html
>
> O campo conta precisa ser um char? Não poderia ser um
> int ou, se necessário, um bigint?
>
> Outra coisa: o campo debcre é só para indicar "debito
> ou credito"? Se for qual a razão de se utilizar um
> character(10)? Não bastaria um char(1)?
>
> Na tabela lancamento_contabil você definiu id como um
> campo serial, isto é, um campo auto-incremento, mas
> definiu sua chave primária como (id_empresa, id). Sua
> chave primária poderia ser somente id.
>
> Se você estiver pensando em múltiplas empresas em seu
> banco não seria melhor utilizar esquemas?
>
> Osvaldo
> PS. Dê uma lida no tutorial em:
> http://pgdocptbr.sourceforge.net/pg80/tutorial.html
>
>
>
>
>      Abra sua conta no Yahoo! Mail, o único sem limite de espaço para
> armazenamento!
> http://br.mail.yahoo.com/
> _______________________________________________
> pgbr-geral mailing list
> [email protected]
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a