[pgbr-geral] Consulta Select

2013-11-24 Por tôpico Ramiro Pamponet
Salve, Salve Galera!

Minha dúvida é a seguinte ...

Estou utilizando o PostgreSQL 9.1.2 e estou desenvolvendo uma aplicação em
Java para Clínicas Veterinárias. Criei uma tela só para cadastrar o
prontuário de cada paciente. Existem 3 tabelas que estão diretamente
interligadas (uma que cadastra o prontuário propriamente dito, uma que
cadastra o tipo de atendimento (Consulta, Banho/Tosa, Vacinação, etc) e o
código do prontuário, outra que cadastra as consultas) A tabela consultas
se relaciona com outras 2 tabelas: anamnese e prescrição. No programa a
gravação dos dados em cada uma das tabelas (Consulta, Anamnese e
Prescrição) é independente. Quando o usuário seleciona uma linha na tabela
consultas os dados referentes à anamnese e prescrição são mostrados em suas
respectivas abas (ainda não está funcionando). Para gerar uma anamnese ou
prescrição é necessário haver uma consulta já cadastrada. Meu problema é
que não estou conseguindo recuperar as informações do banco de dados com a
query abaixo, pois as outras tabelas (anamnese prescrição)  ainda estão
vazias. como devo tratar esses campos para a query me retornar os campos
que possuem algum dado gravado?

A query que estou utilizando é a seguinte

String sql = select c.id as codconsulta, c.codveterinario as
codveterinario, c.data as data, 
+ c.flg_reconsulta as flg_reconsulta, c.data_referencia as
data_referencia, 
+ p.id as codprescricao, p.prescricao as prescricao, 
+ f.nome as nome, a.hist_pass as hist_pass, a.hist_atual
as hist_atual, 
+ a.queixa_pri as queixa_pri, a.sinto_pri as sinto_pri,
a.queixa_sec as queixa_sec, 
+ a.sinto_sec as sinto_sec, a.out_pat as out_pat,
a.int_ant as int_ant, 
+ a.med_uso as med_uso, a.alergias as alergias,
a.susp_diag as susp_diag, 
+ a.prognostico as prognostico, a.diagnostico as
diagnostico, a.alt_lab as alt_lab, 
+ a.dieta as dieta, a.acompanhamento as acompanhamento,
a.conduta as conduta, 
+ a.recomendacao as recomendacao, a.tratamento as
tratamento, a.evolucao as evolucao 
+ from consultas c, anamnese a, prescricoes p,
veterinarios v, funcionarios f 
+ where c.id = a.codconsulta and c.id  = p.codconsulta and

+ c.codveterinario = v.id and v.codfuncionario = f.id 
+ and c.codprontuario = + tfNumProntuario.getText();

Se ignoro os campos que não possuem dados a consulta mostra o resultado das
tabelas consultas e funcionarios (nome).

Obrigado.
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


[pgbr-geral] Dúvida! Query com BUG!

2013-10-30 Por tôpico Ramiro Pamponet
Bom dia Pessoal,

utilizo a seguinte query abaixo para montar um relatório no iReport para
meu programa ...
-
select distinct unidade, estado, extract(year from data) as ano,
extract(month from data) as mes, sum(vendas) as atendimentos from(
select distinct nom_filial as unidade, est_filial as estado, (dat_emissao)
as data, count(dat_emissao) as vendas
from cadcvend, cadfilia
where cadfilia.cod_filial = cadcvend.cod_filial
and flg_excluido is null
and num_nf is null
and extract(year from dat_emissao) between $P{ano_ini} and $P{ano_fim}
and extract(month from dat_emissao) between $P{mes_ini} and $P{mes_fim}
group by dat_emissao, nom_filial, est_filial order by dat_emissao) as
registro
where extract(year from data) between $P{ano_ini} and $P{ano_fim}
and extract(month from data) between $P{mes_ini} and $P{mes_fim}
group by extract(year from data), extract(month from data), unidade, estado
order by extract(year from data), extract(month from data)
-
... onde os parâmetros $P{ano_ini}, $P{ano_fim}, $P{mes_ini} e $P{mes_fim}
são passados pelo programa com DOUBLE e na configuração dos parâmetros no
relatório eu os declaro  assim - new Double(valor).

O relatório funciona perfeitamente, se for considerado um período entre os
meses de 1 a 12 dentro do mesmo ano ou se for considerado todos os meses de
vários anos, mesmo o ano não tendo acabado ainda.

Para minha surpresa, estava realizando alguns teste no programa e percebi o
seguinte bug: considerando o mês inicial = 1, o ano inicial = 2005, o mês
final = 5 e o ano final = 2006 (por exemplo), o relatório rea montado da
seguinte forma ...

Ano   MêsAtendimentos
2005  1xxx
2005  2xxx
2005  3xxx
2005  4xxx
2005  5xxx
2006  1xxx
2006  2xxx
2006  3xxx
2006  4xxx
2006  5xxx

... pulando os meses 6 a 12 do ano de 2005 (por exemplo).

Em um fórum do GUJ fui orientado a modificar minha query da seguinte forma
...
-
select distinct unidade, estado, extract(year from data) as ano,
extract(month from data) as mes, sum(vendas) as atendimentos from(
select distinct nom_filial as unidade, est_filial as estado, (dat_emissao)
as data, count(dat_emissao) as vendas
from cadcvend, cadfilia
where cadfilia.cod_filial = cadcvend.cod_filial
and flg_excluido is null
and num_nf is null
and extract(year from dat_emissao) || extract(month from dat_emissao)
between $P{ano_ini} || $P{mes_ini} and $P{ano_fim} || $P{mes_fim}
group by dat_emissao, nom_filial, est_filial order by dat_emissao) as
registro
where extract(year from dat_emissao) || extract(month from dat_emissao)
between $P{ano_ini} || $P{mes_ini} and $P{ano_fim} || $P{mes_fim}
group by extract(year from data), extract(month from data), unidade, estado
order by extract(year from data), extract(month from data)
-
... que resolveu meu problema em parte, pois dessa forma pega todos os
meses do intervalo de ano selecionado, mas no último ano, se ainda não
tiver sido concluído (exemplo 2013) ele pega apenas o 1º e o último mês do
intervalo, pulando todos os outros meses do ano, mas se considerar apenas o
ano de 2013 e os meses de 1 a 10, o relatório sai correto, ou se considerar
apenas anos que já foram concluídos, ou então, sempre considerar o mês
inicial = 1 e o mês final = 12.

Existe alguma forma de juntar o que está dando certo no 1º relatório com o
que está dando certo no 2º relatório?

As sugestões serão bem vidas!

Obrigado aos que puderem me dar essa ajuda

ASS

Ramiro Pamponet
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Dúvida! Query com BUG!

2013-10-30 Por tôpico Ramiro Pamponet
Mathues, você é o cara!!! Valeu mesmo pela dica. Funcionou beleza!! Foi um
erro de principiante mesmo!!! Mas eu nem sou programador profissional!!
Faço mais como hobby e porque gosto mesmo! Tudo que aprendi sobre Lógica,
Java, SQL, PostgreSQL e iReport foi pela Net em apostilas e vídeo aulas.
Graças a pessoas como vc, em fóruns de discussão sobre esses assuntos que
eu adquiro mais conhecimentos. Minha formação profissional é de
Farmacêutico-Bioquímico. Esse relatório faz parte de um programinha que
desenvolvi para o meu trabalho, para facilitar a minha vida e a dos meus
colegas farmacêuticos, com a finalidade de levantar os atendimentos
diários, mensais e anuais, uma estatística de receitas atendidas por dia,
mês e ano (SUS e Particular), análise percentual (SUS x Particular) por
Período, Máximo e Mínimo de Atendimentos por Período, pois o  sistema que
possuímos na farmácia, apensar de capturar essas informações, não apresenta
nenhum relatório para mostrá-las, sendo que essa coleta de informação antes
era realizada manualmente em uma planilha e compilada no fim do mês para
ser enviada à matriz.

um grande abraço


Em 30 de outubro de 2013 12:16, Matheus de Oliveira 
matioli.math...@gmail.com escreveu:




 2013/10/30 Ramiro Pamponet roli...@oi.com.br

 Bom dia Pessoal,

 utilizo a seguinte query abaixo para montar um relatório no iReport para
 meu programa ...

 -
 select distinct unidade, estado, extract(year from data) as ano,
 extract(month from data) as mes, sum(vendas) as atendimentos from(
 select distinct nom_filial as unidade, est_filial as estado,
 (dat_emissao) as data, count(dat_emissao) as vendas
 from cadcvend, cadfilia
 where cadfilia.cod_filial = cadcvend.cod_filial
 and flg_excluido is null
 and num_nf is null
 and extract(year from dat_emissao) between $P{ano_ini} and $P{ano_fim}
 and extract(month from dat_emissao) between $P{mes_ini} and $P{mes_fim}
 group by dat_emissao, nom_filial, est_filial order by dat_emissao) as
 registro
 where extract(year from data) between $P{ano_ini} and $P{ano_fim}
 and extract(month from data) between $P{mes_ini} and $P{mes_fim}
 group by extract(year from data), extract(month from data), unidade,
 estado
 order by extract(year from data), extract(month from data)

 -
 ... onde os parâmetros $P{ano_ini}, $P{ano_fim}, $P{mes_ini} e
 $P{mes_fim} são passados pelo programa com DOUBLE e na configuração dos
 parâmetros no relatório eu os declaro  assim - new Double(valor).

 O relatório funciona perfeitamente, se for considerado um período entre
 os meses de 1 a 12 dentro do mesmo ano ou se for considerado todos os meses
 de vários anos, mesmo o ano não tendo acabado ainda.

 Para minha surpresa, estava realizando alguns teste no programa e percebi
 o seguinte bug: considerando o mês inicial = 1, o ano inicial = 2005, o mês
 final = 5 e o ano final = 2006 (por exemplo), o relatório rea montado da
 seguinte forma ...

 Ano   MêsAtendimentos
 2005  1xxx
 2005  2xxx
 2005  3xxx
 2005  4xxx
 2005  5xxx
 2006  1xxx
 2006  2xxx
 2006  3xxx
 2006  4xxx
 2006  5xxx

 ... pulando os meses 6 a 12 do ano de 2005 (por exemplo).



 O seu erro nesse caso é considerar a parte de mês - EXTRACT(MONTH FROM
 data) - e ano - EXTRACT(YEAR FROM data) - de forma independente, e não
 uni-los numa mesma verificação.



 Em um fórum do GUJ fui orientado a modificar minha query da seguinte
 forma ...

 -
 select distinct unidade, estado, extract(year from data) as ano,
 extract(month from data) as mes, sum(vendas) as atendimentos from(
 select distinct nom_filial as unidade, est_filial as estado,
 (dat_emissao) as data, count(dat_emissao) as vendas
 from cadcvend, cadfilia
 where cadfilia.cod_filial = cadcvend.cod_filial
 and flg_excluido is null
 and num_nf is null
 and extract(year from dat_emissao) || extract(month from dat_emissao)
 between $P{ano_ini} || $P{mes_ini} and $P{ano_fim} || $P{mes_fim}
 group by dat_emissao, nom_filial, est_filial order by dat_emissao) as
 registro
 where extract(year from dat_emissao) || extract(month from dat_emissao)
 between $P{ano_ini} || $P{mes_ini} and $P{ano_fim} || $P{mes_fim}
 group by extract(year from data), extract(month from data), unidade,
 estado
 order by extract(year from data), extract(month from data)

 -
 ... que resolveu meu problema em parte, pois dessa

Re: [pgbr-geral] Dúvida! Query com BUG!

2013-10-30 Por tôpico Ramiro Pamponet
Obrigado pela dica Osvaldo.

Na verdade a 1ª query é apenas para montar o cabeçalho do relatório e
organizar as informações capturada na 2ª query

select distinct unidade, estado, extract(year from data) as ano,
extract(month from data) as mes, sum(vendas) as atendimentos from( ...) as
registro
where extract(year from dat_emissao) || extract(month from dat_emissao)
between $P{ano_ini} || $P{mes_ini} and $P{ano_fim} || $P{mes_fim}
group by extract(year from data), extract(month from data), unidade, estado
order by extract(year from data), extract(month from data)

A 2ª query é para levantar as informações para montar o relatório
propriamente dido

select distinct nom_filial as unidade, est_filial as estado, (dat_emissao)
as data, count(dat_emissao) as vendas
from cadcvend, cadfilia
where cadfilia.cod_filial = cadcvend.cod_filial
and flg_excluido is null
and num_nf is null
and extract(year from dat_emissao) || extract(month from dat_emissao)
between $P{ano_ini} || $P{mes_ini} and $P{ano_fim} || $P{mes_fim}
group by dat_emissao, nom_filial, est_filial order by dat_emissao

A sugestão do Matheus caiu como uma luva. Achei a sua um pouco mais
complicada, mas vou testá-la também.




Em 30 de outubro de 2013 12:37, Osvaldo Kussama
osvaldo.kuss...@gmail.comescreveu:

 Em 30/10/13, Ramiro Pamponetroli...@oi.com.br escreveu:
  Bom dia Pessoal,
 
  utilizo a seguinte query abaixo para montar um relatório no iReport para
  meu programa ...
 
 -
  select distinct unidade, estado, extract(year from data) as ano,
  extract(month from data) as mes, sum(vendas) as atendimentos from(
  select distinct nom_filial as unidade, est_filial as estado,
 (dat_emissao)
  as data, count(dat_emissao) as vendas
  from cadcvend, cadfilia
  where cadfilia.cod_filial = cadcvend.cod_filial
  and flg_excluido is null
  and num_nf is null
  and extract(year from dat_emissao) between $P{ano_ini} and $P{ano_fim}
  and extract(month from dat_emissao) between $P{mes_ini} and $P{mes_fim}
  group by dat_emissao, nom_filial, est_filial order by dat_emissao) as
  registro
  where extract(year from data) between $P{ano_ini} and $P{ano_fim}
  and extract(month from data) between $P{mes_ini} and $P{mes_fim}
  group by extract(year from data), extract(month from data), unidade,
 estado
  order by extract(year from data), extract(month from data)
 
 -
  ... onde os parâmetros $P{ano_ini}, $P{ano_fim}, $P{mes_ini} e
 $P{mes_fim}
  são passados pelo programa com DOUBLE e na configuração dos parâmetros no
  relatório eu os declaro  assim - new Double(valor).
 
  O relatório funciona perfeitamente, se for considerado um período entre
 os
  meses de 1 a 12 dentro do mesmo ano ou se for considerado todos os meses
 de
  vários anos, mesmo o ano não tendo acabado ainda.
 
  Para minha surpresa, estava realizando alguns teste no programa e
 percebi o
  seguinte bug: considerando o mês inicial = 1, o ano inicial = 2005, o mês
  final = 5 e o ano final = 2006 (por exemplo), o relatório rea montado da
  seguinte forma ...
 
  Ano   MêsAtendimentos
  2005  1xxx
  2005  2xxx
  2005  3xxx
  2005  4xxx
  2005  5xxx
  2006  1xxx
  2006  2xxx
  2006  3xxx
  2006  4xxx
  2006  5xxx
 
  ... pulando os meses 6 a 12 do ano de 2005 (por exemplo).
 
  Em um fórum do GUJ fui orientado a modificar minha query da seguinte
 forma
  ...
 
 -
  select distinct unidade, estado, extract(year from data) as ano,
  extract(month from data) as mes, sum(vendas) as atendimentos from(
  select distinct nom_filial as unidade, est_filial as estado,
 (dat_emissao)
  as data, count(dat_emissao) as vendas
  from cadcvend, cadfilia
  where cadfilia.cod_filial = cadcvend.cod_filial
  and flg_excluido is null
  and num_nf is null
  and extract(year from dat_emissao) || extract(month from dat_emissao)
  between $P{ano_ini} || $P{mes_ini} and $P{ano_fim} || $P{mes_fim}
  group by dat_emissao, nom_filial, est_filial order by dat_emissao) as
  registro
  where extract(year from dat_emissao) || extract(month from dat_emissao)
  between $P{ano_ini} || $P{mes_ini} and $P{ano_fim} || $P{mes_fim}
  group by extract(year from data), extract(month from data), unidade,
 estado
  order by extract(year from data), extract(month from data)
 
 -
  ... que resolveu meu problema em parte, pois dessa forma pega todos os
  meses do 

Re: [pgbr-geral] Fwd: SQL

2013-06-11 Por tôpico Ramiro Pamponet
Bom dia Pessoal,

Expandindo um pouco mais a minha consulta, para incluir os atendimentos
anteriores a 2009, quando o campo flg_receita ainda não era preenchido,
desenvolvi a query abaixo, onde seleciono os valores máximo e mínimo de um
determinado período, a partir de uma consulta mais ampla.

*select max(vendas), min(vendas) from(*
*select distinct (dat_emissao) as data, count(dat_emissao) as vendas *
*from cadcvend *
*where flg_excluido is null *
*and num_nf is null*
*-- and dat_emissao between '2004-06-07' and '2013-12-31' and*
*group by dat_emissao*
*-- order by dat_emissao*
*order by vendas desc) as registro*
*
*
Porém, o resultado apresentado não satisfaz a minha necessidade, gerando
uma coluna com o máximo e outra com o mínimo.

 max
--- min
  338 2

O que eu quero, é uma forma de pegar as datas em que ocorrem os valores
máximo e mínimo, e os valores (máximo e mínimo) em uma mesma coluna,
ordenados por data, conforme modelo montado abaixo, pois ainda não consegui
o mesmo resultado via SQL.

  data
--   max_min
  2004-06-072  2006-06-05   338
Obrigado a todos que puderam me ajudar.





Em 10 de junho de 2013 09:12, Ramiro Pamponet roli...@oi.com.br escreveu:

 Bom dia Galera PG-BR,

 Estou querendo incrementar meu programa e gerar, a partir do resultado da
 consulta gerada pelo SQL abaixo, um segundo relatório contendo a data e
 quantidade de receitas (apenas os valores máximo e o mínimo), no mesmo
 relatório, ordenados por data.

 --
 select dat_emissao as Data,
 SUM(CASE WHEN flg_receita='1' THEN 1 ELSE 0 END) as SUS,
 SUM(CASE WHEN flg_receita='2' THEN 1 ELSE 0 END) as PARTICULAR,
 count(flg_receita) as Total
 from cadcvend where flg_receita is not null
 and flg_excluido is null
 and dat_emissao between data_ini ('-MM-dd') and data_fim ('-MM-dd')
 group by dat_emissao
 order by dat_emissao

 --
 Alguém teria alguma sugestão?

 Agradeço a colaboração de todos!



 Em 3 de junho de 2013 21:03, Tiago Adami adam...@gmail.com escreveu:

 Em 3 de junho de 2013 20:38, Ramiro Pamponet roli...@oi.com.br
 escreveu:

 
  Boa Noite Pessoal,
 
  Estou querendo montar um relatório no iReport para uma aplicação Java
 que desenvolvi para capturar a quantidade de receitas do SUS, Particulares
 e Total por dia, da farmácia onde trabalho. Atualmente minha aplicação
 apresenta o resultado da consulta ao BD em um jTextArea, de forma
  individual, ou seja, uma query para as Receitas SUS, outra as Receitas
 Particulares e uma terceira para o Total de Receitas. O que eu estou
 querendo fazer agora é montar um único relatório, em forma de tabela,
 contendo os campos DATA ; SUS ; PARTICULAR ; TOTAL. Atualmente utilizo o
 modelo de query abaixo descriminado, onde as linhas precedidas por -- são
 as variantes da query. Existe alguma maneira de juntar todas as consultas
 em um único resultado, sabendo que a coluna flg_receita no BD recebe o
 valor CHAR 1 para receitas SUS e 2 para receitas Particulares. Utilizo
 o distinct para não repetir as datas e o count para contar as linhas
 contendo as regras definidas na cláusula where para o tipo de receita.
 
  QUERY:
 
  select distinct(dat_emissao) as Data,
  -- count(flg_receita) as SUS,
  -- count(flg_receita) as Particular,
  -- count(flg_receita) as Total
  from cadcvend where
  -- flg_receita='1' -- SUS
  -- flg_receita='2' -- Particular
  -- flg_receita is not null -- Total
  and
  flg_excluido is null -- Eliminar Vendas Excluídas
  -- and dat_emissao between data_ini ('-MM-dd') and data_fim
 ('-MM-dd')
  group by dat_emissao
  order by dat_emissao
 

 Não testei, mas tenta esse aí:

 select dat_emissao as Data,
 SUM(CASE WHEN flg_receita='1' THEN 1 ELSE 0 END) as SUS,
 SUM(CASE WHEN flg_receita='2' THEN 1 ELSE 0 END) as PARTICULAR,
 count(flg_receita) as Total
 from cadcvend where flg_receita is not null
 and flg_excluido is null
 and dat_emissao between data_ini ('-MM-dd') and data_fim
 ('-MM-dd')
 group by dat_emissao
 order by dat_emissao

 --
 TIAGO J. ADAMI
 http://www.adamiworks.com
 @tiadami
 ___
 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] Fwd: SQL

2013-06-10 Por tôpico Ramiro Pamponet
Bom dia Galera PG-BR,

Estou querendo incrementar meu programa e gerar, a partir do resultado da
consulta gerada pelo SQL abaixo, um segundo relatório contendo a data e
quantidade de receitas (apenas os valores máximo e o mínimo), no mesmo
relatório, ordenados por data.
--
select dat_emissao as Data,
SUM(CASE WHEN flg_receita='1' THEN 1 ELSE 0 END) as SUS,
SUM(CASE WHEN flg_receita='2' THEN 1 ELSE 0 END) as PARTICULAR,
count(flg_receita) as Total
from cadcvend where flg_receita is not null
and flg_excluido is null
and dat_emissao between data_ini ('-MM-dd') and data_fim ('-MM-dd')
group by dat_emissao
order by dat_emissao
--
Alguém teria alguma sugestão?

Agradeço a colaboração de todos!



Em 3 de junho de 2013 21:03, Tiago Adami adam...@gmail.com escreveu:

 Em 3 de junho de 2013 20:38, Ramiro Pamponet roli...@oi.com.br escreveu:
 
  Boa Noite Pessoal,
 
  Estou querendo montar um relatório no iReport para uma aplicação Java
 que desenvolvi para capturar a quantidade de receitas do SUS, Particulares
 e Total por dia, da farmácia onde trabalho. Atualmente minha aplicação
 apresenta o resultado da consulta ao BD em um jTextArea, de forma
  individual, ou seja, uma query para as Receitas SUS, outra as Receitas
 Particulares e uma terceira para o Total de Receitas. O que eu estou
 querendo fazer agora é montar um único relatório, em forma de tabela,
 contendo os campos DATA ; SUS ; PARTICULAR ; TOTAL. Atualmente utilizo o
 modelo de query abaixo descriminado, onde as linhas precedidas por -- são
 as variantes da query. Existe alguma maneira de juntar todas as consultas
 em um único resultado, sabendo que a coluna flg_receita no BD recebe o
 valor CHAR 1 para receitas SUS e 2 para receitas Particulares. Utilizo
 o distinct para não repetir as datas e o count para contar as linhas
 contendo as regras definidas na cláusula where para o tipo de receita.
 
  QUERY:
 
  select distinct(dat_emissao) as Data,
  -- count(flg_receita) as SUS,
  -- count(flg_receita) as Particular,
  -- count(flg_receita) as Total
  from cadcvend where
  -- flg_receita='1' -- SUS
  -- flg_receita='2' -- Particular
  -- flg_receita is not null -- Total
  and
  flg_excluido is null -- Eliminar Vendas Excluídas
  -- and dat_emissao between data_ini ('-MM-dd') and data_fim
 ('-MM-dd')
  group by dat_emissao
  order by dat_emissao
 

 Não testei, mas tenta esse aí:

 select dat_emissao as Data,
 SUM(CASE WHEN flg_receita='1' THEN 1 ELSE 0 END) as SUS,
 SUM(CASE WHEN flg_receita='2' THEN 1 ELSE 0 END) as PARTICULAR,
 count(flg_receita) as Total
 from cadcvend where flg_receita is not null
 and flg_excluido is null
 and dat_emissao between data_ini ('-MM-dd') and data_fim ('-MM-dd')
 group by dat_emissao
 order by dat_emissao

 --
 TIAGO J. ADAMI
 http://www.adamiworks.com
 @tiadami
 ___
 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


[pgbr-geral] Fwd: SQL

2013-06-03 Por tôpico Ramiro Pamponet
Boa Noite Pessoal,

Estou querendo montar um relatório no iReport para uma aplicação Java que
desenvolvi para capturar a quantidade de receitas do SUS, Particulares e
Total por dia, da farmácia onde trabalho. Atualmente minha aplicação
apresenta o resultado da consulta ao BD em um jTextArea, de forma
 individual, ou seja, uma query para as Receitas SUS, outra as Receitas
Particulares e uma terceira para o Total de Receitas. O que eu estou
querendo fazer agora é montar um único relatório, em forma de tabela,
contendo os campos DATA ; SUS ; PARTICULAR ; TOTAL. Atualmente utilizo o
modelo de query abaixo descriminado, onde as linhas precedidas por -- são
as variantes da query. Existe alguma maneira de juntar todas as consultas
em um único resultado, sabendo que a coluna flg_receita no BD recebe o
valor CHAR 1 para receitas SUS e 2 para receitas Particulares. Utilizo
o distinct para não repetir as datas e o count para contar as linhas
contendo as regras definidas na cláusula where para o tipo de receita.

QUERY:

select distinct(dat_emissao) as Data,
-- count(flg_receita) as SUS,
-- count(flg_receita) as Particular,
-- count(flg_receita) as Total
from cadcvend where
-- flg_receita='1' -- SUS
-- flg_receita='2' -- Particular
-- flg_receita is not null -- Total
and
flg_excluido is null -- Eliminar Vendas Excluídas
-- and dat_emissao between data_ini ('-MM-dd') and data_fim
('-MM-dd')
group by dat_emissao
order by dat_emissao

Obrigado pela atenção de todos.
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] pg_dump dando erro!

2012-08-29 Por tôpico Ramiro Pamponet
Olá pessoal, obrigado pelos e-mails. Respondendo às perguntas.

- Utilizo o PostgreSQL 9.1.2
- Se observarem direito, eu também posto a saída do meu programa onde os
espaços estão coretos

 run:
 127.0.0.1
 pg_dump -i -h 127.0.0.1 -p 5432 -U postgres -F c -b -o -v -f
H:/Backup/BDFisio.backup  fisio
 pg_dump: too many command-line arguments (first is -U)
 Try pg_dump --help for more information.

vou tentar as sugestões de retirar o -i e colocar o -U na frente para ver
se funciona.

Alguém tem alguma sugestão de como fazer o pg_dump rodar na máquina do
cliente sem ter o postgreSQL instalado? Já copiei o pg_dump.exe e as DLL's
da pasta BIN mas quando executo o *.bat em uma máquina que não tem o
postgreSQL aparece a mensagem informando que pg_dump.exe não é reconhecido
como um programa interno, externo ou programa de lotes. Será que tenho que
copiar esses arquivos para o disco local C: (atualmente estou rodando o
aplicativo em um pendrive) ou tem como registar o pg_dump como aplicativo
na máquina do cliente?

Valeu galera




Em 29 de agosto de 2012 00:02, Matheus de Oliveira 
matioli.math...@gmail.com escreveu:


 Em 28/08/2012 23:16, Ramiro Pamponet roli...@oi.com.br escreveu:

 
  Olá pessoal.
 
  Estou tentando fazer o seguinte:
 
  public void realizaBackup() {
  Runtime r = Runtime.getRuntime();
  String ip=;
  try {
  BufferedReader in = new BufferedReader(new
 FileReader(./IP.txt));
  String str;
  while((str = in.readLine()) != null){
  //JOptionPane.showMessageDialog(null, str);
  ip = str;
  }
  in.close();
  }catch (Exception ex) {
  ex.printStackTrace();
  }
  System.out.println(ip);
  try {
  String cmd = pg_dump -i -h + ip + -p 5432 -U postgres -F
 c -b -o -v -f \H:/Backup/BDFisio.backup \ \fisio\;
  System.out.println(cmd);
  Process p = r.exec(pg_dump -i -h+ ip +-p 5432 -U postgres
 -F c -b -o -v -f \H:/Backup/BDFisio.backup \ \fisio\);

 Parece que falta um espaço antes e um depois do IP.

  if (p != null) {
  OutputStream outputStream = p.getOutputStream();
  outputStream.write(123\r\n.getBytes());
  outputStream.flush();
  outputStream.close();
  InputStreamReader streamReader = new
 InputStreamReader(p.getErrorStream());
  BufferedReader reader = new BufferedReader(streamReader);
  String linha;
  while ((linha = reader.readLine()) != null) {
  System.out.println(linha);
  }
  }
 
  JOptionPane.showMessageDialog(null, Backup realizado com
 sucesso!, Aviso, JOptionPane.INFORMATION_MESSAGE);
  } catch (IOException ioe) {
  JOptionPane.showMessageDialog(null, Erro ao tentar realizar
 o backup!\n + ioe.getMessage(), Erro, JOptionPane.ERROR_MESSAGE);
  ioe.printStackTrace();
  }
  }
 
  O meu retorno no console é o seguinte
 
  run:
  127.0.0.1
  pg_dump -i -h 127.0.0.1 -p 5432 -U postgres -F c -b -o -v -f
 H:/Backup/BDFisio.backup  fisio
  pg_dump: too many command-line arguments (first is -U)
  Try pg_dump --help for more information.
 
  Não estou conseguindo enxergar o erro!
 
  Quando executo o arquivo de lote contendo o código abaixo ele funciona
 perfeitamente
 
  @echo off
  SET PGUSER=postgres
  SET PGPASSWORD=123
  if exist H:\Backup (chdir H:\Backup) else (mkdir H:\Backup)
  echo Aguarde, realizando o backup do Banco de Dados
  for /f tokens=1,2,3,4 delims=/  %%a in ('DATE /T') do set
 Date=%%b-%%c-%%d
  rem O comando acima serve para armazenar a data no formato dia-mes-ano
 na variável Date;
  pg_dump -i -h localhost -p 5432 -U postgres -F c -b -o -v -f
 H:\Backup\BDFisio%Date%.backup fisio
  pause
  exit
 
  Alguém pode me dizer onde está o erro!
 
  valeu galera
 
  ___
  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


___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] pg_dump dando erro!

2012-08-29 Por tôpico Ramiro Pamponet
Olá Dickson,

Então me responda, se souber! Porque quando eu executo o meu arquivo *.bat
(que possui a mesma linha de comando) ele funciona, e quando tento executar
a mesma linha de comando dentro do código fonte do meu programa é que
ocorre o erro? Será que tem alguma explicação?



Em 29 de agosto de 2012 08:52, Dickson S. Guedes lis...@guedesoft.netescreveu:

 Em 28 de agosto de 2012 23:16, Ramiro Pamponet roli...@oi.com.br
 escreveu:
  Olá pessoal.
 
  Estou tentando fazer o seguinte:

 [... corte ...]


  O meu retorno no console é o seguinte
 
  run:
  127.0.0.1
  pg_dump -i -h 127.0.0.1 -p 5432 -U postgres -F c -b -o -v -f
  H:/Backup/BDFisio.backup  fisio
  pg_dump: too many command-line arguments (first is -U)
  Try pg_dump --help for more information.

 O pgAdmin tem uma telinha em que ele vai logando os comandos que executa,
 tente fazer este dump pelo pgAdmin e veja a linha de comando que ele gera
 pois
 ele mostra pra você.

 Veja como ele faz e tente fazer no mesmo formato.

 Talvez usando as opções longas não melhore isto? Por exemplo, ao invés de
 -F c usar --format=custom , -h usar --host e assim por diante...

 []s
 --
 Dickson S. Guedes
 mail/xmpp: gue...@guedesoft.net - skype: guediz
 http://guedesoft.net - http://www.postgresql.org.br
 ___
 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] pg_dump dando erro!

2012-08-29 Por tôpico Ramiro Pamponet
Pô Tiago, era essa dica que eu estava precisando. Eu até encontrei um post
sobre o assunto no Fórum JavaFree, mas o cara só informou que copiou os
arquivos e não falou nada sobre setá-los na variável path do SO. Vou tentar
isso e com certeza deverá funcionar. Valeu pela Dica!



Em 29 de agosto de 2012 09:13, Tiago Adami adam...@gmail.com escreveu:

 Em 29 de agosto de 2012 08:49, Ramiro Pamponet roli...@oi.com.br
 escreveu:
 (corte)

  Alguém tem alguma sugestão de como fazer o pg_dump rodar na máquina do
  cliente sem ter o postgreSQL instalado? Já copiei o pg_dump.exe e as
 DLL's
  da pasta BIN mas quando executo o *.bat em uma máquina que não tem o
  postgreSQL aparece a mensagem informando que pg_dump.exe não é
 reconhecido
  como um programa interno, externo ou programa de lotes. Será que tenho
 que
  copiar esses arquivos para o disco local C: (atualmente estou rodando o
  aplicativo em um pendrive) ou tem como registar o pg_dump como
 aplicativo na
  máquina do cliente?

 Isso acontece porque o SO não sabe onde está o arquivo executável.

 Copiando os binários funciona, mas para que seja acessível você
 precisará informar sempre o caminho completo onde está o arquivo
 pg_dump.exe, como por exemplo:

 C:\C:\Arquivos de Programas\PostgreSQL\9.1\bin\pg_dump.exe -U
 postgres -h... -- com os parâmetros adicionais

 Ou então acrescentar o diretório onde você instalou os binários na
 variável PATH do sistema operacional. Procurando um pouco no Google
 você encontra algumas para fazer isso.


 --
 TIAGO J. ADAMI
 http://www.adamiworks.com
 ___
 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] pg_dump dando erro!

2012-08-29 Por tôpico Ramiro Pamponet
Olá Osvaldo,

Então vc está me dizendo que a String impressa no console

 pg_dump -i -h 127.0.0.1 -p 5432 -U postgres -F c -b -o -v -f
 H:/Backup/BDFisio.backup  fisio

não corresponde à String de execução?

Process p = p.getRuntime(pg_dump -i -h + ip + -p 5432 -U postgres -F c
-b -o -v -f /H:/Backup/BDFisio.backup/ /fisio/);

Ainda não consegui enxergar o ERRO!

A não ser que eu tenha que retirar as aspas dulas / ... / do nome do
banco de dados (fisio). Será que pode ser isso?


Em 29 de agosto de 2012 10:06, Osvaldo Kussama
osvaldo.kuss...@gmail.comescreveu:

 Em 29/08/12, Ramiro Pamponetroli...@oi.com.br escreveu:
  Olá pessoal, obrigado pelos e-mails. Respondendo às perguntas.
 
  - Utilizo o PostgreSQL 9.1.2
  - Se observarem direito, eu também posto a saída do meu programa onde os
  espaços estão coretos
 
  run:
  127.0.0.1
  pg_dump -i -h 127.0.0.1 -p 5432 -U postgres -F c -b -o -v -f
  H:/Backup/BDFisio.backup  fisio
  pg_dump: too many command-line arguments (first is -U)
  Try pg_dump --help for more information.
 
  vou tentar as sugestões de retirar o -i e colocar o -U na frente para ver
  se funciona.
 
  Alguém tem alguma sugestão de como fazer o pg_dump rodar na máquina do
  cliente sem ter o postgreSQL instalado? Já copiei o pg_dump.exe e as
 DLL's
  da pasta BIN mas quando executo o *.bat em uma máquina que não tem o
  postgreSQL aparece a mensagem informando que pg_dump.exe não é
 reconhecido
  como um programa interno, externo ou programa de lotes. Será que tenho
 que
  copiar esses arquivos para o disco local C: (atualmente estou rodando o
  aplicativo em um pendrive) ou tem como registar o pg_dump como aplicativo
  na máquina do cliente?
 
  Valeu galera
 


 Observe que a string que você imprime *não* é a string que você passa
 para execução.

 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] pg_dump dando erro!

2012-08-29 Por tôpico Ramiro Pamponet
Em 29 de agosto de 2012 10:36, Osvaldo Kussama
osvaldo.kuss...@gmail.comescreveu:

 Em 29/08/12, Ramiro Pamponetroli...@oi.com.br escreveu:
  Olá Osvaldo,
 
  Então vc está me dizendo que a String impressa no console
 
  pg_dump -i -h 127.0.0.1 -p 5432 -U postgres -F c -b -o -v -f
  H:/Backup/BDFisio.backup  fisio
 
  não corresponde à String de execução?
 
  Process p = p.getRuntime(pg_dump -i -h + ip + -p 5432 -U postgres -F c
  -b -o -v -f /H:/Backup/BDFisio.backup/ /fisio/);
 
  Ainda não consegui enxergar o ERRO!
 
  A não ser que eu tenha que retirar as aspas dulas / ... / do nome do
  banco de dados (fisio). Será que pode ser isso?
 
 


 Consta de sua primeira mensagem:
  String cmd = pg_dump -i -h + ip + -p 5432 -U postgres -F c -b -o
 -v -f \H:/Backup/BDFisio.backup \ \fisio\;
 System.out.println(cmd);
 Process p = r.exec(pg_dump -i -h+ ip +-p 5432 -U
 postgres -F c -b -o -v -f \H:/Backup/BDFisio.backup \ \fisio\);

 Observe que em:
 Process p = r.exec(pg_dump -i -h+ ip +-p 5432 -U postgres -F c -b
 -o -v -f \H:/Backup/BDFisio.backup \ \fisio\);
 não existem os espaços antes e após a variável ip que constam em:
 String cmd = pg_dump -i -h + ip + -p 5432 -U postgres -F c -b -o -v
 -f \H:/Backup/BDFisio.backup \ \fisio\;

 Talvez você tenha corrigido posteriormente.

 Osvaldo


Vou verificar isso! Só mesmo uma pessoa de forapara conseguir enxergar o
erro! eu não tinha percebido mesmo!

 ___
 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] pg_dump dando erro!

2012-08-29 Por tôpico Ramiro Pamponet
Em 29 de agosto de 2012 10:50, Flavio Henrique Araque Gurgel 
fla...@4linux.com.br escreveu:


   Então vc está me dizendo que a String impressa no console


  pg_dump -i -h 127.0.0.1 -p 5432 -U postgres -F c -b -o -v -f
  H:/Backup/BDFisio.backup  fisio

 não corresponde à String de execução?

 Process p = p.getRuntime(pg_dump -i -h + ip + -p 5432 -U postgres -F c
 -b -o -v -f /H:/Backup/BDFisio.backup/ /fisio/);


 O Osvaldo tem razão, *não* é a mesma...



 Ainda não consegui enxergar o ERRO!

 A não ser que eu tenha que retirar as aspas dulas / ... / do nome do
 banco de dados (fisio). Será que pode ser isso?


 Simples, você coloca na variável cmd e depois concatena novamente, porque
 não usa a cmd?

 Veja, não tem espaço (peço desculpas aos demais pelo HTML):

 Process p = r.exec(pg_dump -i *-h+ ip +-p* 5432 -U
 postgres -F c -b -o -v -f \H:/Backup/BDFisio.backup \ \fisio\);

 E a solução é ainda mais simples, use a variável cmd que você já setou:

  String cmd = pg_dump -i -h + ip + -p 5432 -U postgres -F
 c -b -o -v -f \H:/Backup/BDFisio.backup \ \fisio\;
  System.out.println(cmd);
  Process p = r.exec(cmd);

 Atenciosamente,
 --
 Matheus de Oliveira

 ___
 pgbr-geral mailing 
 listpgbr-ge...@listas.postgresql.org.brhttps://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


  Adicionalmente, recomendo ao colega verificar se a aplicação Java está
 usando o mesmo binário do pg_dump que o script bat.

  Pode ser que não. Especialmente em Windows e máquina que já teve servidor
 PostgreSQL e PgAdmin instalados separadamente.
  pg_dump --version pode ser executado via Java e via bat pra conferir.

  Passe o caminho completo do executável da versão certa no código para
 resolver.

  []s


 Flavio Henrique A. Gurgel
 Consultor e Instrutor 4Linux
 Tel: +55-11-2125-4747www.4linux.com.br


   A versão do pg_dump está correta. Desde o início eu sempre estou
 utilizando a mesma versão do PostgreSQL, e não tive outras versões
 instaladas em minha máquina anteriormente.
 ___
 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] pg_dump dando erro!

2012-08-29 Por tôpico Ramiro Pamponet
Em 29 de agosto de 2012 10:06, Ramiro Pamponet roli...@oi.com.br escreveu:

 Pô Tiago, era essa dica que eu estava precisando. Eu até encontrei um post
 sobre o assunto no Fórum JavaFree, mas o cara só informou que copiou os
 arquivos e não falou nada sobre setá-los na variável path do SO. Vou tentar
 isso e com certeza deverá funcionar. Valeu pela Dica!

 Em 29 de agosto de 2012 09:13, Tiago Adami adam...@gmail.com escreveu:

 Em 29 de agosto de 2012 08:49, Ramiro Pamponet roli...@oi.com.br
 escreveu:
 (corte)

  Alguém tem alguma sugestão de como fazer o pg_dump rodar na máquina do
  cliente sem ter o postgreSQL instalado? Já copiei o pg_dump.exe e as
 DLL's
  da pasta BIN mas quando executo o *.bat em uma máquina que não tem o
  postgreSQL aparece a mensagem informando que pg_dump.exe não é
 reconhecido
  como um programa interno, externo ou programa de lotes. Será que tenho
 que
  copiar esses arquivos para o disco local C: (atualmente estou rodando o
  aplicativo em um pendrive) ou tem como registar o pg_dump como
 aplicativo na
  máquina do cliente?

 Isso acontece porque o SO não sabe onde está o arquivo executável.

 Copiando os binários funciona, mas para que seja acessível você
 precisará informar sempre o caminho completo onde está o arquivo
 pg_dump.exe, como por exemplo:

 C:\C:\Arquivos de Programas\PostgreSQL\9.1\bin\pg_dump.exe -U
 postgres -h... -- com os parâmetros adicionais

 Ou então acrescentar o diretório onde você instalou os binários na
 variável PATH do sistema operacional. Procurando um pouco no Google
 você encontra algumas para fazer isso.

 --
TIAGO J. ADAMI
http://www.adamiworks.com

Se instalar o pgAdmin na Máquina do Cliente também resolve o meu problema.
Aí eu posso utilizar a linha de comando utilizando o diretório de
instalação do pgAdmin e rodar o pg_dump normalmente! Estou Correto?


  http://www.adamiworks.com
 ___
 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] Extrair mes e ano Postgresql

2012-08-29 Por tôpico Ramiro Pamponet
Em 29 de agosto de 2012 17:06, Edson Lidorio edson...@gmail.com escreveu:

 Só ordena, no ano atual
 veja como aparece:

 3/2012
 4/2010
 4/2012
 5/2012
 6/2011
 6/2012
 7/2012
 8/2012


Tenta assim

order by EXTRACT(YEAR from a.dt_mov), EXTRACT(MONTH from a.dt_mov)




 2012/8/22 Osvaldo Kussama osvaldo.kuss...@gmail.com

 Em 22/08/12, Tiago Adamiadam...@gmail.com escreveu:
  Em 22 de agosto de 2012 00:05, Matheus de Oliveira
  matioli.math...@gmail.com escreveu:
 
  Em 21/08/2012 21:27, Edson - Listas edson...@gmail.com escreveu:
 
 
 
  Olá Pessoal,
 
  Como extrair o mês e ano em um campo data no PostgreSql?
  Exemplo: (08/2012)
 
  Extrair só a data eu consegui...
 
  select EXTRACT(MONTH from a.dt_mov) mes,sum(a.vlr_final)total
  from movdirhe a
  where a.dt_mov between '01/01/2010' and '21/08/2012'
 
  group by EXTRACT(MONTH from a.dt_mov)
 
  order by mes asc
 
  Edson
 
 
  Dê uma olhada na função to_char.
 
  Resumindo pelo exemplo:
 
  SELECT LTRIM(TO_CHAR( EXTRACT(MONTH FROM a.dt_mov), '00' )) || '/' ||
  LTRIM(TO_CHAR( EXTRACT(YEAR FROM a.dt_mov), '' )) AS MES_ANO
 
  NOTAS:
  * Não sei se era a sua dúvida, mas valores texto não são 'somados' e
  sim 'concatenados' com o operador 'pipe-pipe' = ||
  * Se você não está limitando sua consulta a um intervalo dentro de
  apenas 1 ano, ordenar somente por mês não trará a ordem cronológica
  exata. O correto seria ordenar por ano e mês nesta ordem, ou
  simplesmente pelo campo 'a.dt_mov'.
 


 Mas neste caso não fica mais simples fazer:

 SELECT to_char(a.dt_mov, 'MM/') mes_ano, sum(a.vlr_final) total
 FROM movdirhe a
 WHERE a.dt_mov between '01/01/2010' and '21/08/2012'
 GROUP BY date_trunc('month', a.dt_mov)
 ORDER BY date_trunc('month', a.dt_mov);

 ou algo parecido?

 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


___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Extrair mes e ano Postgresql

2012-08-29 Por tôpico Ramiro Pamponet
Em 29 de agosto de 2012 17:24, Anselmo Silva anselmo@gmail.comescreveu:

 Não poderia ser somente order by a.dt_mov?

 Em 29 de agosto de 2012 17:20, Ramiro Pamponet roli...@oi.com.brescreveu:

 Em 29 de agosto de 2012 17:06, Edson Lidorio edson...@gmail.comescreveu:

 Só ordena, no ano atual
 veja como aparece:

 3/2012
 4/2010
 4/2012
 5/2012
 6/2011
 6/2012
 7/2012
 8/2012


 Tenta assim

 order by EXTRACT(YEAR from a.dt_mov), EXTRACT(MONTH from a.dt_mov)




 2012/8/22 Osvaldo Kussama osvaldo.kuss...@gmail.com

 Em 22/08/12, Tiago Adamiadam...@gmail.com escreveu:
  Em 22 de agosto de 2012 00:05, Matheus de Oliveira
  matioli.math...@gmail.com escreveu:
 
  Em 21/08/2012 21:27, Edson - Listas edson...@gmail.com escreveu:
 
 
 
  Olá Pessoal,
 
  Como extrair o mês e ano em um campo data no PostgreSql?
  Exemplo: (08/2012)
 
  Extrair só a data eu consegui...
 
  select EXTRACT(MONTH from a.dt_mov) mes,sum(a.vlr_final)total
  from movdirhe a
  where a.dt_mov between '01/01/2010' and '21/08/2012'
 
  group by EXTRACT(MONTH from a.dt_mov)
 
  order by mes asc
 
  Edson
 
 
  Dê uma olhada na função to_char.
 
  Resumindo pelo exemplo:
 
  SELECT LTRIM(TO_CHAR( EXTRACT(MONTH FROM a.dt_mov), '00' )) || '/' ||
  LTRIM(TO_CHAR( EXTRACT(YEAR FROM a.dt_mov), '' )) AS MES_ANO
 
  NOTAS:
  * Não sei se era a sua dúvida, mas valores texto não são 'somados' e
  sim 'concatenados' com o operador 'pipe-pipe' = ||
  * Se você não está limitando sua consulta a um intervalo dentro de
  apenas 1 ano, ordenar somente por mês não trará a ordem cronológica
  exata. O correto seria ordenar por ano e mês nesta ordem, ou
  simplesmente pelo campo 'a.dt_mov'.
 


 Mas neste caso não fica mais simples fazer:

 SELECT to_char(a.dt_mov, 'MM/') mes_ano, sum(a.vlr_final) total
 FROM movdirhe a
 WHERE a.dt_mov between '01/01/2010' and '21/08/2012'
 GROUP BY date_trunc('month', a.dt_mov)
 ORDER BY date_trunc('month', a.dt_mov);

 ou algo parecido?

 Osvaldo


Na verdade eu só estou passando uma dica que me deram aqui nessa lista
mesmo, no post Ordenar datas. Onde a única diferença é que eu precisava
ordenar as datas por dia e mês.

  ___
 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



 ___
 pgbr-geral mailing list
 pgbr-geral@listas.postgresql.org.br
 https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral




 --
 Anselmo M. Silva

 ___
 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


[pgbr-geral] Dúvida Manutenção de Banco de Dados

2012-08-28 Por tôpico Ramiro Pamponet
Olá Galera,

Vou disponibilizar minha aplicação para o cliente e estou com algumas
dúvidas. Como vou oferecer suporte ao software, gostaria de saber com que
frequência se deve rodar o utilitário de manutenção do postgreSQL / pgAdmin
III e qual a finalidade do Vaccum, Analyze e Reindex. É necessário realizar
esses procedimentos?

Outra Dúvida. Somente o formato CUSTOM (*.backup) é que pode ser utilizado
para restaurar o banco de dados? Estou perguntando isso porque uma vez
gerei um arquivo no formato Compress e no formato TAR e não consegui
realizar a restauração do banco. Gerando um script (*.sql) também é
possível restaurar o banco de dados a partir do pg_restore?

É necessário informar ao utilitário de backup do pgAdmin III / postgreSQL
(pg_dump) para inluir os Inserts das Colunas ou ele já faz isso
automaticamente?

E por fim, Estava querendo criar uma trigger para realizar o backup do
banco de dados automaticamente em um horário próximo do final do expediente
do cliente, para garantir que a base de dados esteja sempre atualizada,
independente do cliente se lembrar ou não de fazê-lo, mas não sei criar
triggers ainda, então gostaria de uma Força dos Colegas para me ajudar.

Valeu Galera da Comunidade PG-BR
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Dúvida Manutenção de Banco de Dados

2012-08-28 Por tôpico Ramiro Pamponet
Olá Fábio,

Li seu post sobre Dump não é Backup e achei bem legal! Só agora caiu a
ficha que era vc!

Respondendo as suas perguntas:

Utilizo o PstgreSQL 9.1.2 com pgAdmin III 1.14
Onde eu verifico se o autovacuum está habilitado? Uma vez eu li que a
partir da versão 9.1 (ou anterior) ele já vinha habilitado por padrão!
O Banco de Dados vai ser entregue ao cliente Zerado, e acho que não haverão
tantas rotinas de delete e update, afinal de contas se trata de uma
aplicação para gerenciar uma clínica (Cadastro de Clientes, Agendamento de
Consultas, Orçamentos, ...).
Existe alguma ferramenta melhor para fazer o backup da base de dados no
postgreSQL que a ferramenta pg_dump?

Para Agendar uma tarefa de Backup automático no Windows terei que chamar o
pg_dump por um arquivo de lotes já que não dá para passar os argumentos da
linha de comando pelo próprio agendador de tarefas (atualmente já utilizo o
*.bat para fazer o backup a partir de minha aplicação).

E realmente, na verdade, é manter o Backup atualizado!

Mais uma dúvida! É possível fazer um Backup Local de uma Base de Dados
Remota (é porque consegui fazer meu programa acessar o banco de dados em
outra máquina através da internet, fornecendo o ip da conexão do servidor
com a net), sem ter instalado na máquina local o PostgreSQL (ouvi falar em
criar uma procedure e chamar o métido no programa via select, será que
resolve?). A linguagem de Programação que utilizo é o java



Em 28 de agosto de 2012 13:06, Fábio Telles Rodriguez 
fabio.tel...@gmail.com escreveu:



 Em 28 de agosto de 2012 12:33, Ramiro Pamponet roli...@oi.com.brescreveu:

 Olá Galera,

 Vou disponibilizar minha aplicação para o cliente e estou com algumas
 dúvidas.


 Meus parabéns, é sempre um momento gratificante entrar em produção
 finalmente!!!


 Como vou oferecer suporte ao software, gostaria de saber com que
 frequência se deve rodar o utilitário de manutenção do postgreSQL / pgAdmin
 III e qual a finalidade do Vaccum, Analyze e Reindex. É necessário realizar
 esses procedimentos?


 DEPENDE da sua aplicação e como você configura o Postgres.

 Pergunta número um: qual versão do Postgres você usa?
 Seu autovacuum está habilitado?
 Você realiza muitas operações de DELETE e UPDATE, particularmente em lote?


 Outra Dúvida. Somente o formato CUSTOM (*.backup) é que pode ser
 utilizado para restaurar o banco de dados? Estou perguntando isso porque
 uma vez gerei um arquivo no formato Compress e no formato TAR e não
 consegui realizar a restauração do banco. Gerando um script (*.sql) também
 é possível restaurar o banco de dados a partir do pg_restore?


 Ah... aqui eu vou pedir para você estudar um pouco mais a documentação.
 Perder um bom tempo estudando o assunto é fundamental. Vale a pena lembrar
 que DUMP NÃO É BACKUP!!!

 Leia:

 http://tellesr.wordpress.com/2010/05/06/dump-nao-e-backup
 http://www.postgresql.org/docs/9.1/static/backup.html


 É necessário informar ao utilitário de backup do pgAdmin III / postgreSQL
 (pg_dump) para inluir os Inserts das Colunas ou ele já faz isso
 automaticamente?


 Leia a documentação:
 http://www.postgresql.org/docs/9.1/static/app-pgdump.html



 E por fim, Estava querendo criar uma trigger para realizar o backup do
 banco de dados automaticamente em um horário próximo do final do expediente
 do cliente,


 Sim, agendar o backup para fora do horário de pico é uma boa ideia.


 para garantir que a base de dados esteja sempre atualizada, independente
 do cliente se lembrar ou não de fazê-lo,


 A base atualizada ou o backup atualizado?



 mas não sei criar triggers ainda, então gostaria de uma Força dos Colegas
 para me ajudar.


 Isso não deve funcionar muito bem.  Use para isso o crontab + pg_dump no
 Unix ou scheduler + pg_dump no Windows.


 Valeu Galera da Comunidade PG-BR



 Me preocupa o fato de você estar a ponto de entrar em produção e ter
 tantas dúvidas assim. Se você puder, recomendo contratar os serviços de um
 DBA (tem vários na lista) para te orientar um pouco no começo. É um custo
 que pode lhe poupar de desastres maiores num futuro próximo.

 []s



 --
 Atenciosamente,
 Fábio Telles Rodriguez
 blog: http:// http://www.midstorm.org/%7Etelles/
 http://tellesr.wordpress.com
 e-mail / gtalk / MSN: fabio.tel...@gmail.com
 Skype: fabio_telles


 ___
 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


[pgbr-geral] pg_dump dando erro!

2012-08-28 Por tôpico Ramiro Pamponet
Olá pessoal.

Estou tentando fazer o seguinte:

public void realizaBackup() {
Runtime r = Runtime.getRuntime();
String ip=;
try {
BufferedReader in = new BufferedReader(new
FileReader(./IP.txt));
String str;
while((str = in.readLine()) != null){
//JOptionPane.showMessageDialog(null, str);
ip = str;
}
in.close();
}catch (Exception ex) {
ex.printStackTrace();
}
System.out.println(ip);
try {
String cmd = pg_dump -i -h + ip + -p 5432 -U postgres -F c
-b -o -v -f \H:/Backup/BDFisio.backup \ \fisio\;
System.out.println(cmd);
Process p = r.exec(pg_dump -i -h+ ip +-p 5432 -U postgres -F
c -b -o -v -f \H:/Backup/BDFisio.backup \ \fisio\);

if (p != null) {
OutputStream outputStream = p.getOutputStream();
outputStream.write(123\r\n.getBytes());
outputStream.flush();
outputStream.close();
InputStreamReader streamReader = new
InputStreamReader(p.getErrorStream());
BufferedReader reader = new BufferedReader(streamReader);
String linha;
while ((linha = reader.readLine()) != null) {
System.out.println(linha);
}
}

JOptionPane.showMessageDialog(null, Backup realizado com
sucesso!, Aviso, JOptionPane.INFORMATION_MESSAGE);
} catch (IOException ioe) {
JOptionPane.showMessageDialog(null, Erro ao tentar realizar o
backup!\n + ioe.getMessage(), Erro, JOptionPane.ERROR_MESSAGE);
ioe.printStackTrace();
}
}

O meu retorno no console é o seguinte

run:
127.0.0.1
pg_dump -i -h 127.0.0.1 -p 5432 -U postgres -F c -b -o -v -f
H:/Backup/BDFisio.backup  fisio
pg_dump: too many command-line arguments (first is -U)
Try pg_dump --help for more information.

Não estou conseguindo enxergar o erro!

Quando executo o arquivo de lote contendo o código abaixo ele funciona
perfeitamente

@echo off
SET PGUSER=postgres
SET PGPASSWORD=123
if exist H:\Backup (chdir H:\Backup) else (mkdir H:\Backup)
echo Aguarde, realizando o backup do Banco de Dados
for /f tokens=1,2,3,4 delims=/  %%a in ('DATE /T') do set Date=%%b-%%c-%%d
rem O comando acima serve para armazenar a data no formato dia-mes-ano na
variável Date;
pg_dump -i -h localhost -p 5432 -U postgres -F c -b -o -v -f
H:\Backup\BDFisio%Date%.backup fisio
pause
exit

Alguém pode me dizer onde está o erro!

valeu galera
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


[pgbr-geral] Configuração do Arquivo pg_hba.conf

2012-08-26 Por tôpico Ramiro Pamponet
Olá Galera, eu estava com o mesmo problema para acessar minha aplicação
pela rede, mas resolvi acrescentando a segunda linha host ...

# IPv4 local connections:

hostall postgres 127.0.0.1/32  md5


hostall postgres 192.168.1.0/24md5

Mas eu também estava querendo permitir que o usuário pudesse se conectar ao
banco pela internet, de um notebook por exemplo, para consultar sua agenda
ou emitir algum relatório. Tentei incluir uma 3ª linha no arquivo
 hostall postgres 0.0.0.0/128md5

mas dessa forma, qdo eu vou reinicair o serviço, ocorre um erro e ele não
inicia. Então fica a minha dúvida. Como fazer para configurar o arquivo
pg_hba.conf para permitir que um computador externo à rede local acesse o
banco de dados? qual configuração de IP eu devo utilizar para conseguir
esse objetivo. Mais uma vez, Obrigado aos companheiros pela Ajuda ofertada!

ATT
Ramiro
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Configuração do Arquivo pg_hba.conf

2012-08-26 Por tôpico Ramiro Pamponet
Olá Túlio,

Obrigado por ter respondido. Na verdade o erro estava no /128 (que é para o
IPV6) já que para o IPV4 é no máximo /32. Mesmo assim, Valeu!



Em 26 de agosto de 2012 17:24, Tulio Santos tuliogust...@yahoo.com.brescreveu:

  Olá Ramiro,

 Tente desta forma..
 Abs

 hostall postgres 0.0.0.0/0md5

 Att,
 Tulio

   --
 *De:* Ramiro Pamponet roli...@oi.com.br
 *Para:* Comunidade PostgreSQL Brasileira 
 pgbr-geral@listas.postgresql.org.br
 *Enviadas:* Domingo, 26 de Agosto de 2012 17:00
 *Assunto:* [pgbr-geral] Configuração do Arquivo pg_hba.conf


 Olá Galera, eu estava com o mesmo problema para acessar minha aplicação
 pela rede, mas resolvi acrescentando a segunda linha host ...
 # IPv4 local connections:
 hostall postgres 127.0.0.1/32  md5

 hostall postgres 192.168.1.0/24
 md5
 Mas eu também estava querendo permitir que o usuário pudesse se conectar
 ao banco pela internet, de um notebook por exemplo, para consultar sua
 agenda ou emitir algum relatório. Tentei incluir uma 3ª linha no arquivo
  hostall postgres 0.0.0.0/128md5

 mas dessa forma, qdo eu vou reinicair o serviço, ocorre um erro e ele não
 inicia. Então fica a minha dúvida. Como fazer para configurar o arquivo
 pg_hba.conf para permitir que um computador externo à rede local acesse o
 banco de dados? qual configuração de IP eu devo utilizar para conseguir
 esse objetivo. Mais uma vez, Obrigado aos companheiros pela Ajuda ofertada!

 ATT
 Ramiro

 ___
 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


___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


[pgbr-geral] Excluindo Dados em duas Tabelas Relacionadas

2012-08-22 Por tôpico Ramiro Pamponet
Olá Galera,

Possuo em minha aplicação 2 tabelas interligadas onde quando houver a
exclusão dos dados de uma, na outra deverá haver a exclusão também. Tipo
assim: as tabelas são c_orcamentos (Cabeçalho) e d_orçamentos (detalhes). A
chave primária da tabela c_orcamentos (id) é chave estrangerira da tabela
d_orcamentos (id_orcamento). Quando um orçamento for excluído, porque não
foi confirmado no prazo de 60 dias por exemplo, eu preciso excluir os dados
tanto na tabela c_orcamentos quanto na tabela d_orcamentos, se tentar
excluir em um e não excluir na outra, vai dar violação de restrição FK. Mas
o comando delete não aceita a estrutura - delete from c_orcamentos c,
d_orcamentos d where c.id=d.id_orcamento and c.id= +tfOrcamento.getText().
Então a minha dúvida é, como fazer esse tipo de exclusão
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Ordenar Datas

2012-08-20 Por tôpico Ramiro Pamponet
Olá Osvaldo,

Na minha subquery eu quero que conste as datas de aniversário com o mês
maior ou igual ao mês atual, e a partir daí (na minha query principal), eu
quero que apenas as datas do resultado da minha subquery mostrem aquelas
que possuem o dia maior ou igual ao dia atual, ordenando o resultado final
por mês e dia.

Vou tentar a solução apresnetada pelo Fabrizio

*SELECT nome, aniversario FROM clientes
WHERE extract(MONTH from aniversario)  extract(MONTH from now())
OR (extract(MONTH from aniversario) = extract(MONTH from now()) AND
extract(DAY from aniversario) = extract(DAY from now()))
ORDER BY extract(MONTH from aniversario), extract(DAY from aniversario) *

e ver se consigo o resultado esperado. Valeu Galera!




Em 19 de agosto de 2012 23:00, Osvaldo Kussama
osvaldo.kuss...@gmail.comescreveu:

 Em 19/08/12, Ramiro Pamponetroli...@oi.com.br escreveu:
  E seu eu fizesse uso de subqueryes do tipo:
 
 -
  select nome, aniversario from clientes
  where extract(DAY from aniversario) = extract(DAY from now())
  in
  (select nome, aniversario from clientes
  where extract(MONTH from aniversario) = extract(MONTH from now()))
  order by extract(MONTH from aniversario), extract(DAY from aniversario)
 
 -
  mas com um pequeno detalhe, essa consulta me retorno o seguinte erro:
 
 -
  ERRO:  subconsulta tem muitas colunas
  LINE 3: in
  ^
  ** Error **
  ERRO: subconsulta tem muitas colunas
  SQL state: 42601
  Character: 103
 
 -
  Sendo que a quantidade de colunas nas duas consultas é a mesma, 2 (nome e
  aniversario). Onde estou errando?
 
  Era para fazer a consulta por mês e depois a partir do resultado dessa
  consulta fazer outra por dia, e por fim ordenar por mês e dia.
 
  Caso não seja possível, vou começar a pensar na possibilidade de
 utilizar a
  função to_char (aniversario, 'MMDD'), que já andei lendo que pode ser
  descontinuada nas próximas versões do PostgreSQL. Valeu Galera e Um
 Grande
  Abraço a Todos!
 

 Não consegui ver sentido em sua cláusula IN.
 O que você deseja que conste do resultado de sua sub-query?

 Osvaldo

 Obs.: Aonde você leu que a função to_char será descontinuada?
 ___
 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] Ordenar Datas

2012-08-20 Por tôpico Ramiro Pamponet
Osvaldo, respondendo a sua pergunta, onde eu vi sobre a descontinuidade da
função to_char, entre outros lugares, segue abaixo o link de uma pesquisa
no Google. Pode sere que não seja para agora, mas já está sendo levantada a
hipótese para as próximas versões.

**
 POSTGRESQL
EM 
EXEMPLOShttp://www.inf.ufrgs.br/%7Eirmmenezes/home/download/pgsql/postgreSQL_pratico.pdf
www.inf.ufrgs.br/~irmmenezes/home/.../postgreSQL_pratico.pdf
Formato do arquivo: PDF/Adobe Acrobat - Visualização
rápidahttp://docs.google.com/viewer?a=vq=cache:HRCD0hQuW2gJ:www.inf.ufrgs.br/%7Eirmmenezes/home/download/pgsql/postgreSQL_pratico.pdf+fun%C3%A7%C3%A3o+to_char+descontinuadahl=pt-BRgl=brpid=blsrcid=ADGEESiVbpSueXp5amIuHupVCpZYhLB2TJZKiqD81ssV8aHEDv5tcMTxkHbog9atSQ1RCItOz6lZIKSmmcxl9tmd_3cvE9HkLpYhkzt1lDcHBOXkN-_3fe6dix4SPdiAXULUc-4MchfTsig=AHIEtbQR-6Dg_iadHVbWrCcc2iN9wnJf8w
*TO_CHAR* - Esta *função* deve ser evitada, pois será *descontinuada*.
TO_DATE date TO_DATE(text, text); Recebe dois parâmetros text e retorna
date. Um dos *...
**
*
Em 19 de agosto de 2012 23:00, Osvaldo Kussama
osvaldo.kuss...@gmail.comescreveu:

 Em 19/08/12, Ramiro Pamponetroli...@oi.com.br escreveu:
  E seu eu fizesse uso de subqueryes do tipo:
 
 -
  select nome, aniversario from clientes
  where extract(DAY from aniversario) = extract(DAY from now())
  in
  (select nome, aniversario from clientes
  where extract(MONTH from aniversario) = extract(MONTH from now()))
  order by extract(MONTH from aniversario), extract(DAY from aniversario)
 
 -
  mas com um pequeno detalhe, essa consulta me retorno o seguinte erro:
 
 -
  ERRO:  subconsulta tem muitas colunas
  LINE 3: in
  ^
  ** Error **
  ERRO: subconsulta tem muitas colunas
  SQL state: 42601
  Character: 103
 
 -
  Sendo que a quantidade de colunas nas duas consultas é a mesma, 2 (nome e
  aniversario). Onde estou errando?
 
  Era para fazer a consulta por mês e depois a partir do resultado dessa
  consulta fazer outra por dia, e por fim ordenar por mês e dia.
 
  Caso não seja possível, vou começar a pensar na possibilidade de
 utilizar a
  função to_char (aniversario, 'MMDD'), que já andei lendo que pode ser
  descontinuada nas próximas versões do PostgreSQL. Valeu Galera e Um
 Grande
  Abraço a Todos!
 

 Não consegui ver sentido em sua cláusula IN.
 O que você deseja que conste do resultado de sua sub-query?

 Osvaldo

 Obs.: Aonde você leu que a função to_char será descontinuada?
 ___
 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] Ordenar Datas

2012-08-19 Por tôpico Ramiro Pamponet
E seu eu fizesse uso de subqueryes do tipo:
-
select nome, aniversario from clientes
where extract(DAY from aniversario) = extract(DAY from now())
in
(select nome, aniversario from clientes
where extract(MONTH from aniversario) = extract(MONTH from now()))
order by extract(MONTH from aniversario), extract(DAY from aniversario)
-
mas com um pequeno detalhe, essa consulta me retorno o seguinte erro:
-
ERRO:  subconsulta tem muitas colunas
LINE 3: in
^
** Error **
ERRO: subconsulta tem muitas colunas
SQL state: 42601
Character: 103
-
Sendo que a quantidade de colunas nas duas consultas é a mesma, 2 (nome e
aniversario). Onde estou errando?

Era para fazer a consulta por mês e depois a partir do resultado dessa
consulta fazer outra por dia, e por fim ordenar por mês e dia.

Caso não seja possível, vou começar a pensar na possibilidade de utilizar a
função to_char (aniversario, 'MMDD'), que já andei lendo que pode ser
descontinuada nas próximas versões do PostgreSQL. Valeu Galera e Um Grande
Abraço a Todos!

Em 18 de agosto de 2012 17:24, Dickson S. Guedes lis...@guedesoft.netescreveu:

 Em 18 de agosto de 2012 13:48, Ramiro Pamponet roli...@oi.com.br
 escreveu:
  Fabrizio,
 
  Sua solução atende 99% as minhas necessidades. Fiz umas alterações.
 
  select nome, aniversario from clientes
  where extract(MONTH from aniversario) = extract(MONTH from now())
  order by extract(MONTH from aniversario), extract(DAY from aniversario)
 
  Mas pra ficar 100% será que não teria como filtrar também pelo dia do
 mês,
  para que não mostre os clientes que já fizeram aniversário naquele mês?
  Mostar somente os clientes que ainda irão fazer aniversário, seja dentro
 do
  próprio mês ou nos meses seguintes.


 Talvez date_trunc [1] e interval ajude você a encontrar um caminho
 mais apropriado.


 [1]
 http://www.postgresql.org/docs/current/static/functions-datetime.html#FUNCTIONS-DATETIME-TRUNC

 []s
 --
 Dickson S. Guedes
 mail/xmpp: gue...@guedesoft.net - skype: guediz
 http://guedesoft.net - http://www.postgresql.org.br
  ___
 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


[pgbr-geral] Ordenar Datas

2012-08-18 Por tôpico Ramiro Pamponet
Olá Pessoal, sou novo por aqui e estou com uma dúvida. Possuo na minha
tabela de clientes um campo date para guardar a data de nascimento desse
cliente e apartir daí calcular a idade dele em minha aplicação Java. Estava
querendo implementar um lembrete de aniversariantes (toda vez que o sistema
fosse aberto, mostrar todos os clientes que ainda vão fazer aniversário,
ordenados por mês, seguido pelo dia, ignorando o ano, na minha tela
principal). Será que isso é possível utilizando  SQL (PostgreSQL) ou Java?
Aguardo sugestões. Obrigado
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Ordenar Datas

2012-08-18 Por tôpico Ramiro Pamponet
Vou testar essa query para ver se atende as minhas necessidades, e volto a
postar assim que tiver uma confirmação. Valeu!



Em 18 de agosto de 2012 10:46, Fabrízio de Royes Mello 
fabriziome...@gmail.com escreveu:


 Em 18 de agosto de 2012 10:37, Ramiro Pamponet roli...@oi.com.brescreveu:

 Olá Pessoal, sou novo por aqui e estou com uma dúvida. Possuo na minha
 tabela de clientes um campo date para guardar a data de nascimento desse
 cliente e apartir daí calcular a idade dele em minha aplicação Java. Estava
 querendo implementar um lembrete de aniversariantes (toda vez que o sistema
 fosse aberto, mostrar todos os clientes que ainda vão fazer aniversário,
 ordenados por mês, seguido pelo dia, ignorando o ano, na minha tela
 principal). Será que isso é possível utilizando  SQL (PostgreSQL) ou Java?
 Aguardo sugestões. Obrigado


 Se eu entendi bem vc quer algo tipo:

 SELECT codigo, nome, data_nascimento
   FROM tabela
 ORDER BY extract(MONTH FROM data_nascimento), extract(DAY FROM
 data_nascimento);

 Att,

 --
 Fabrízio de Royes Mello
 Consultoria/Coaching PostgreSQL
  Blog sobre TI: http://fabriziomello.blogspot.com
  Perfil Linkedin: http://br.linkedin.com/in/fabriziomello
  Twitter: http://twitter.com/fabriziomello


 ___
 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] Ordenar Datas

2012-08-18 Por tôpico Ramiro Pamponet
Vou testar essa query também e avaliar o seu retorno, comparando com a
resposta data pelo Fabrízio de Royes Mello. Valeu pela dica Também!



Em 18 de agosto de 2012 10:51, Osvaldo Kussama
osvaldo.kuss...@gmail.comescreveu:

 Em 18/08/12, Ramiro Pamponetroli...@oi.com.br escreveu:
  Olá Pessoal, sou novo por aqui e estou com uma dúvida. Possuo na minha
  tabela de clientes um campo date para guardar a data de nascimento desse
  cliente e apartir daí calcular a idade dele em minha aplicação Java.
 Estava
  querendo implementar um lembrete de aniversariantes (toda vez que o
 sistema
  fosse aberto, mostrar todos os clientes que ainda vão fazer aniversário,
  ordenados por mês, seguido pelo dia, ignorando o ano, na minha tela
  principal). Será que isso é possível utilizando  SQL (PostgreSQL) ou
 Java?
  Aguardo sugestões. Obrigado
 

 Uma possibilidade, para listar os aniversariantes por mês, é:

 SELECT nome, to_char(data_de_nascimento, 'MMDD') FROM sua_tabela ORDER BY
 2;

 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] Ordenar Datas

2012-08-18 Por tôpico Ramiro Pamponet
Fabrizio,

Sua solução atende 99% as minhas necessidades. Fiz umas alterações.

select nome, aniversario from clientes
where extract(MONTH from aniversario) = extract(MONTH from now())
order by extract(MONTH from aniversario), extract(DAY from aniversario)

Mas pra ficar 100% será que não teria como filtrar também pelo dia do mês,
para que não mostre os clientes que já fizeram aniversário naquele mês?
Mostar somente os clientes que ainda irão fazer aniversário, seja dentro do
próprio mês ou nos meses seguintes.

Tentei inluir na query a opção

select ... where ... and extract(DAYfrom aniversario) = extract(DAYfrom
now()) order by ...

mas dessa forma ele pula também os meses em que o dia é = que o dia atual.

ATT

Ramiro


Em 18 de agosto de 2012 10:46, Fabrízio de Royes Mello 
fabriziome...@gmail.com escreveu:


 Em 18 de agosto de 2012 10:37, Ramiro Pamponet roli...@oi.com.brescreveu:

 Olá Pessoal, sou novo por aqui e estou com uma dúvida. Possuo na minha
 tabela de clientes um campo date para guardar a data de nascimento desse
 cliente e apartir daí calcular a idade dele em minha aplicação Java. Estava
 querendo implementar um lembrete de aniversariantes (toda vez que o sistema
 fosse aberto, mostrar todos os clientes que ainda vão fazer aniversário,
 ordenados por mês, seguido pelo dia, ignorando o ano, na minha tela
 principal). Será que isso é possível utilizando  SQL (PostgreSQL) ou Java?
 Aguardo sugestões. Obrigado


 Se eu entendi bem vc quer algo tipo:

 SELECT codigo, nome, data_nascimento
   FROM tabela
 ORDER BY extract(MONTH FROM data_nascimento), extract(DAY FROM
 data_nascimento);

 Att,

 --
 Fabrízio de Royes Mello
 Consultoria/Coaching PostgreSQL
  Blog sobre TI: http://fabriziomello.blogspot.com
  Perfil Linkedin: http://br.linkedin.com/in/fabriziomello
  Twitter: http://twitter.com/fabriziomello


 ___
 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