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
