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
