Caro Osvaldo,

Bom dia! Obrigado pela ajuda! Segue abaixo a estrutura;

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';



Em 03/02/08, Osvaldo Kussama <[EMAIL PROTECTED]> escreveu:
>
>
> --- emerson lopes <[EMAIL PROTECTED]> escreveu:
>
> > O campo id é integer... mais a ligacao, fica por
> > conta do campo
> > CONTA(char-8) sendo:
> > 1. -> 1o Nivel
> > 1.00. -> 2o Nivel
> > 1.00.000 -> 3o Nivel
> >
> > Tem apenas 3 nivel, sendo:
> > o 1o Nivel pode ser de 1 a 9
> > o 2o Nivel pode ser de 00 a 99
> > o 3o Nivel pode ser de 000 a 999
> >
> >  Plano de Conta     Lancamento Contabil
> > +----------+              +------------+
> > | conta   |------------->| conta    |
> > | nome   |               | valor     |
> > |  ...       |               | ...         |
> > -------------               +------------+
> >
> >
> > A 1a que voce falou nao tentei... e a 2a, via SQL
> > nao tentei porque sou
> > péssimo em SQL... queria alguma ponta pé inicial
> > para mim poder checar e chegar no resultado final...
> >
> > Algo assim:
> >
> > Select * from plano_conta (select lancamentos...) ou
> > seja, ele iria mostrar
> > todo o plano de contas e executar um SUM nos
> > lancamentos agrupados por
> > conta... como se fosse em programacao, algo do tipo:
> >
> > Select Plano de Contas...
> > .... sum lancamento contabil
> > next...
> >
> >
> > Agradeço,
> >
> > Emerson
> >
> > Em 03/02/08, Osvaldo Kussama
> > <[EMAIL PROTECTED]> escreveu:
> > >
> > >
> > > --- emerson lopes <[EMAIL PROTECTED]>
> > escreveu:
> > >
> > > > Caro Osvaldo,
> > > > Obrigado mais uma vez pelo HELP.... segue as
> > > > tabelas:
> > > >
> > > > - Plano de Contas
> > > >   id
> > > >   descricao
> > > >   debcre
> > > >
> > > > - lancamento contabil
> > > >   id
> > > >   id_conta
> > > >   valor
> > > >
> > > > Em síntese, as duas tabelas estão dispostas
> > dessa
> > > > forma... nao tendo um
> > > > encadeamento(conta Pai) por exemplo...
> > > > Como ficaria o SQL...?
> > > >
> > > > Emerson
> > > >
> > > >
> > > >
> > > > Em 02/02/08, Osvaldo Kussama
> > > > <[EMAIL PROTECTED]> escreveu:
> > > > >
> > > > >
> > > > > --- emerson lopes <[EMAIL PROTECTED]>
> > > > escreveu:
> > > > > >
> > > > > > Preciso de uma ajuda em um SQL. Seguinte:
> > > > > > Tenho a tabela de *plano de contas* e uma de
> > > > > > *lançamento contabil*....
> > > > > >
> > > > > > Quero fazer um SQL para agrupar pela conta
> > para
> > > > > > montar a seguinte estrutura,
> > > > > > lembrando que na tabela de lancamento, so
> > tenho
> > > > as
> > > > > > contas analiticas, ou
> > > > > > seja,
> > > > > >  as contas de de nivel 3, exemplo: 1.01.001
> > > > > > conta     - nome      - valor
> > > > > > 1.00.000 - Receitas - 1.000,00
> > > > > > 1.01.001 - Vendas a vista 600,00
> > > > > > 1.01.002 - Vendas a prazo 400,00
> > > > > >
> > > > >
> > > > >
> > > > > Você não informou como está definida sua
> > tabela
> > > > *plano
> > > > > de contas*.
> > > > >
> > > > > Se ela tiver algum tipo de encadeamento
> > informando
> > > > > para cada conmta qual é a conta pai talvez o
> > > > módulo
> > > > > contrib/tablefunc/connectby possa ajudar.
> > > > >
> > > > > Se não existir qualquer tipo de encadeamento
> > > > talvez a
> > > > > utilização de um SUM com GROUP BY pela parte
> > do
> > > > código
> > > > > da conta correspondente (por ex. x.yy -
> > > > > substr(conta,1,4)) possa atender parcialmente.
> > > > >
> > >
> > >
> > > Podemos então descartar a utiçização da função
> > > connectby.
> > >
> > > O campo id da tabela plano de contas é um campo
> > > numérico, um char(8) ou um varchar(n)?
> > >
> > > Quantos níveis tem seu plano de contas, apenas 3,
> > mais
> > > ou pode ser um número variável de níveis?
> > >
> > > Você tentou a segunda opção de minha resposta
> > > anterior?  Qual foi o resultado?
> > >
> >
>
>
> Caro Emerson:
>
> Para ser ajudado em uma lista é importante querer ser
> ajudado.
> Em minha primeira resposta eu já falei que você não
> havia informado a estrutura de suas tabelas. Em sua
> resposta você informou parcialmente e de sua resposta
> subentendi que na tabela lancamento contabil o campo
> id_conta referenciava o campo id da tabela Plano de
> Contas mas, pela sua última resposta, a estrutura
> parece não ser bem essa, agora você falou de um campo
> conta que não havia sido mencionado até o momento.
>
> Outro ponto é onde você fala em "programação". Creio
> que o que você está querendo dizer é alguma coisa de
> forma procedimental (ou procedural, como preferem
> alguns). Ora o SQL é uma linguagem *declarativa* e não
> *procedimental*. Você tem que pensar na forma de
> *conjunto*, isto é, qual é o conjunto de dados que
> você deseja como resposta e especificar detalhadamente
> as condições que cada dado tem que satisfazer para ser
> incluido no resultado desejado e não especificar *o
> como* incluir no resultado (primeiro faça isso e
> depois aquilo etc).
>
> Vamos recomeçar com você colocando aqui as DLL de suas
> tabelas.
>
> Osvaldo
>
>
>
>      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