Re: [pgbr-geral] SQL DINAMICO DENTRO DE UM PL
Em 02/02/16, Osvaldo Kussamaescreveu: > Em 02/02/16, lu moraes santos escreveu: >> Então como eu faria esta modelagem de gerar as parcelas de acordo com a >> forma de pagamento >> > > Por exemplo utilizando um array. > De qualquer maneira me parece estranho que os períodos possam ser > variáveis (um 30 dias, outro 15, outro 5, etc). > > Certamente definindo uma quantidade de variáveis que atendam a todas > as possibilidades não me parece um bom caminho. > > Osvaldo > Aliás: por que não um tabela? Osvaldo ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] SQL DINAMICO DENTRO DE UM PL
Então como eu faria esta modelagem de gerar as parcelas de acordo com a forma de pagamento Em 1 de fev de 2016 11:45 PM, "Osvaldo Kussama"escreveu: > Em 01/02/16, lu moraes santos escreveu: > > veja pra vc entender: > > > > id_pagto descricaoqtdparc p1 p2 p3 p4 p5 p6 .P12 > >1 A Vista 1 0 > >2 Entrada + 30 2 0 30 > >3Entr/30/60 3 0 30 60 > >430/60/903 30 60 90 > >530/45/503 30 45 50 > > > > Os campos p1 ate p12 DETERMINA O INTERVALO DOS VENCIMENTO > > > > O Campo qtdparc DETERMINA A QTDE DE PARCELAS > > > > Se vc fizer uma compra de 100,00 usando id_pagto=2 ficaria: > > > > 50,00 pra hj (current_date + 0) > > 50,00 para 02/03/2016 (current_date + 30) > > > > > Creio que você deva repensar sua solução. > Me parece sem sentido você utilizar estas múltiplas variáveis. > > Osvaldo > ___ > pgbr-geral mailing list > pgbr-geral@listas.postgresql.org.br > https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] SQL DINAMICO DENTRO DE UM PL
Em 02/02/16, lu moraes santosescreveu: > Então como eu faria esta modelagem de gerar as parcelas de acordo com a > forma de pagamento > Por exemplo utilizando um array. De qualquer maneira me parece estranho que os períodos possam ser variáveis (um 30 dias, outro 15, outro 5, etc). Certamente definindo uma quantidade de variáveis que atendam a todas as possibilidades não me parece um bom caminho. Osvaldo ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] SQL DINAMICO DENTRO DE UM PL
Em 01/02/16, lu moraes santosescreveu: > veja pra vc entender: > > id_pagto descricaoqtdparc p1 p2 p3 p4 p5 p6 .P12 >1 A Vista 1 0 >2 Entrada + 30 2 0 30 >3Entr/30/60 3 0 30 60 >430/60/903 30 60 90 >530/45/503 30 45 50 > > Os campos p1 ate p12 DETERMINA O INTERVALO DOS VENCIMENTO > > O Campo qtdparc DETERMINA A QTDE DE PARCELAS > > Se vc fizer uma compra de 100,00 usando id_pagto=2 ficaria: > > 50,00 pra hj (current_date + 0) > 50,00 para 02/03/2016 (current_date + 30) > Creio que você deva repensar sua solução. Me parece sem sentido você utilizar estas múltiplas variáveis. Osvaldo ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] SQL DINAMICO DENTRO DE UM PL
Ola bom dia Osvaldo. quando vc usa o comando INTO dDataVencto USING i; ele vai substituir o conteudo do parametro $1 pelo conteudo de i, entao se fosse traduzir o sql: Select Current_date + P1 from condpagto WHERE id_pagto=6; entao seria: EXECUTE 'SELECT current_date + P*$1* FROM condpagto WHERE id_pagto=6' INTO dDataVencto USING i; ? Se for ai da o seguinte erro: ERROR: column "p$1" does not exist LINE 1: SELECT current_date + p$1 FROM condpagto WHERE id_pagto = 6 ^ HINT: Perhaps you meant to reference the column "condpagto.p1" or the column "condpagto.p11". MUITO GRATO PELA ATENCAO [image: Foto] *LuMoraes* *O mais completo para seu comércio.* Em 1 de fevereiro de 2016 11:05, Osvaldo Kussamaescreveu: > Em 01/02/16, lu moraes santos escreveu: > > Ola bom dia a todos. > > > > Estou precisando montar um sql dinamico dentro de uma PL, tenho uma > tabela > > de cond. pagto onde devo destacar os seguinte campos: > > > > qtdparc = quantidade de parcelas > > > > p1 ate p12 ou seja os dias de vencto de cada parcela, exemplo: > > > > qtdparc=2 > > p1=30 > > p2=60 > > > > ou seja 2 parcelas = 30 + 60 os vencimentos > > > > estou fazendo um loop na qtde de parcelas pra gerar o valor e vencto de > > cada parcela: > > > > for i in 1..qtdparc > > loop > > > > -- eu fiz da seguinte forma: > > > > execute 'select into dDataVencto current_date + p' || i ||' from > > condpagto where id_pagto= 6'; > > > > -- O dDataVencto é uma variavel do tipo Date para receber a data de > hoje + > > n > > -- dias > > > > -- note que 'p'|| i é pra concatenar o p + valor de i no loop para pegar > a > > parcela (p1 ou p2 ou p3 ou pnvezes) > > > > -- aqui em baixo o resto do codigo. > > > > end loop; > > > > > > Porem ao executar da erro de sintaxe. > > > > > > Tente: > > EXECUTE 'SELECT current_date + $1*30 FROM condpagto WHERE id_pagto = > 6' INTO dDataVencto USING i; > > Osvaldo > ___ > pgbr-geral mailing list > pgbr-geral@listas.postgresql.org.br > https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] SQL DINAMICO DENTRO DE UM PL
Em 01/02/16, lu moraes santosescreveu: > Ola bom dia Osvaldo. > > quando vc usa o comando INTO dDataVencto USING i; ele vai substituir o > conteudo do parametro $1 pelo conteudo de i, entao se fosse traduzir o sql: > > Select Current_date + P1 from condpagto WHERE id_pagto=6; entao seria: > > EXECUTE 'SELECT current_date + P*$1* FROM condpagto WHERE id_pagto=6' INTO > dDataVencto USING i; ? > > Se for ai da o seguinte erro: > > ERROR: column "p$1" does not exist > LINE 1: SELECT current_date + p$1 FROM condpagto WHERE id_pagto = 6 >^ > HINT: Perhaps you meant to reference the column "condpagto.p1" or the > column "condpagto.p11". > Sinceramente não vejo muito sentido na utilização destas variáveis pi para definir a quantidade de dias para o vencimento de cada parcela. Osvaldo ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] SQL DINAMICO DENTRO DE UM PL
Em 01/02/16, lu moraes santosescreveu: > Ola bom dia a todos. > > Estou precisando montar um sql dinamico dentro de uma PL, tenho uma tabela > de cond. pagto onde devo destacar os seguinte campos: > > qtdparc = quantidade de parcelas > > p1 ate p12 ou seja os dias de vencto de cada parcela, exemplo: > > qtdparc=2 > p1=30 > p2=60 > > ou seja 2 parcelas = 30 + 60 os vencimentos > > estou fazendo um loop na qtde de parcelas pra gerar o valor e vencto de > cada parcela: > > for i in 1..qtdparc > loop > > -- eu fiz da seguinte forma: > > execute 'select into dDataVencto current_date + p' || i ||' from > condpagto where id_pagto= 6'; > > -- O dDataVencto é uma variavel do tipo Date para receber a data de hoje + > n > -- dias > > -- note que 'p'|| i é pra concatenar o p + valor de i no loop para pegar a > parcela (p1 ou p2 ou p3 ou pnvezes) > > -- aqui em baixo o resto do codigo. > > end loop; > > > Porem ao executar da erro de sintaxe. > > Tente: EXECUTE 'SELECT current_date + $1*30 FROM condpagto WHERE id_pagto = 6' INTO dDataVencto USING i; Osvaldo ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] SQL DINAMICO DENTRO DE UM PL
veja pra vc entender: id_pagto descricaoqtdparc p1 p2 p3 p4 p5 p6 .P12 1 A Vista 1 0 2 Entrada + 30 2 0 30 3Entr/30/60 3 0 30 60 430/60/903 30 60 90 530/45/503 30 45 50 Os campos p1 ate p12 DETERMINA O INTERVALO DOS VENCIMENTO O Campo qtdparc DETERMINA A QTDE DE PARCELAS Se vc fizer uma compra de 100,00 usando id_pagto=2 ficaria: 50,00 pra hj (current_date + 0) 50,00 para 02/03/2016 (current_date + 30) GRATO [image: Foto] *LuMoraes* *O mais completo para seu comércio.* 2016-02-01 12:14 GMT-02:00 Osvaldo Kussama: > Em 01/02/16, lu moraes santos escreveu: > > Ola bom dia Osvaldo. > > > > quando vc usa o comando INTO dDataVencto USING i; ele vai substituir o > > conteudo do parametro $1 pelo conteudo de i, entao se fosse traduzir o > sql: > > > > Select Current_date + P1 from condpagto WHERE id_pagto=6; entao seria: > > > > EXECUTE 'SELECT current_date + P*$1* FROM condpagto WHERE id_pagto=6' > INTO > > dDataVencto USING i; ? > > > > Se for ai da o seguinte erro: > > > > ERROR: column "p$1" does not exist > > LINE 1: SELECT current_date + p$1 FROM condpagto WHERE id_pagto = 6 > >^ > > HINT: Perhaps you meant to reference the column "condpagto.p1" or the > > column "condpagto.p11". > > > > > Sinceramente não vejo muito sentido na utilização destas variáveis pi > para definir a quantidade de dias para o vencimento de cada parcela. > > Osvaldo > ___ > pgbr-geral mailing list > pgbr-geral@listas.postgresql.org.br > https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral > ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral