Re: [pgbr-geral] Ajuda com SELECT

2017-11-03 Por tôpico Daniel Luiz da Silva
De: "Antonio Cesar" <cgcesarsoa...@gmail.com> 
Para: "Comunidade PostgreSQL Brasileira" <pgbr-geral@listas.postgresql.org.br> 
Enviadas: Quinta-feira, 2 de novembro de 2017 9:44:44 
Assunto: [pgbr-geral] Ajuda com SELECT 

Bom dia, 

Estou com esse comando com uma percima peformace. 

OBs Tava funcionando normal de uma hora para outra ficou muito lento. 

"Limit (cost=0.26..117.46 rows=100 width=385)" 
" -> Nested Loop (cost=0.26..36017.81 rows=30730 width=385)" 
" -> Merge Join (cost=0.26..27384.58 rows=30730 width=389)" 
" Merge Cond: (its.codigo = ip.codigo_item)" 
" Join Filter: (its.codigo_unidade = ip.codigo_unidade)" 
" -> Index Scan using pk_item_codigo on item its 
(cost=0.00..8508.14 rows=33680 width=385)" 
" Filter: ((tipo_item <> ALL ('{07,08}'::bpchar[])) 
AND (ativo = 'S'::bpchar))" 
" -> Index Scan using pk_item_preco_codigo on item_preco 
ip (cost=0.00..18258.11 rows=56550 width=8)" 
" Index Cond: ((codigo_empresa = 2) AND 
(codigo_negocio = 1))" 
" Filter: ((ativo)::bpchar = 'S'::bpchar)" 
" -> Index Only Scan using pk_unidade_codigo on unidade un 
(cost=0.00..0.27 rows=1 width=4)" 
" Index Cond: (codigo = ip.codigo_unidade)" 

Servidor: 

mem 32GB 

Linux debian 

Processador 8 Nucle 

Marca DELL 

Conexao simutaneo 18 


___ 
pgbr-geral mailing list 
pgbr-geral@listas.postgresql.org.br 
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral 
de Banco de Dados 
Departamento Data Center 
daniel.si...@ipm.com.br 
48 3031-7500 

Antonio, 

Utiliza esse site [1] para conseguir analisar performance de query. 

Sobre a query o que mais consome é no índice pk_item_preco_codigo e realizar o 
merge entre os registros. Mas o que seria lento para você? Essa consulta 
movimenta poucos registros, acredito que demora mais de 1 segundo para 
executar, mas caso demore terá que validar se o caminho seguido é bom 
suficiente para seu negócio. 

[1] http://tatiyants.com/pev/#/plans/new 
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

[pgbr-geral] Ajuda com SELECT

2017-11-02 Por tôpico Antonio Cesar

Bom dia,

Estou com esse comando com uma percima peformace.

OBs Tava funcionando normal de uma hora para outra ficou muito lento.

"Limit  (cost=0.26..117.46 rows=100 width=385)"
"  ->  Nested Loop  (cost=0.26..36017.81 rows=30730 width=385)"
"->  Merge Join  (cost=0.26..27384.58 rows=30730 width=389)"
"  Merge Cond: (its.codigo = ip.codigo_item)"
"  Join Filter: (its.codigo_unidade = ip.codigo_unidade)"
"  ->  Index Scan using pk_item_codigo on item its 
(cost=0.00..8508.14 rows=33680 width=385)"
"Filter: ((tipo_item <> ALL ('{07,08}'::bpchar[])) 
AND (ativo = 'S'::bpchar))"
"  ->  Index Scan using pk_item_preco_codigo on item_preco 
ip  (cost=0.00..18258.11 rows=56550 width=8)"
"Index Cond: ((codigo_empresa = 2) AND 
(codigo_negocio = 1))"

"Filter: ((ativo)::bpchar = 'S'::bpchar)"
"->  Index Only Scan using pk_unidade_codigo on unidade un  
(cost=0.00..0.27 rows=1 width=4)"

"  Index Cond: (codigo = ip.codigo_unidade)"

Servidor:

mem 32GB

Linux debian

Processador 8 Nucle

Marca DELL

Conexao simutaneo 18

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

Re: [pgbr-geral] Ajuda com Select

2016-08-06 Por tôpico Edson F. Lidorio

Em 06-08-2016 16:16, Tiago José Adami escreveu:

Em 6 de agosto de 2016 16:13, Tiago José Adami  escreveu:

Em 5 de agosto de 2016 16:51, Edson F. Lidorio  escreveu:

Opa!
Quase isso, Preciso considerar:

- todos os produtos


Não ficou claro, mas acredito que você deseje incluir todos os
produtos da tabela produto mesmo que não haja registros na tabela
historico_vendas, correto? Isto pode ser resolvido com um LEFT/RIGHT
OUTER JOIN. Veja o exemplo do SQL abaixo.


- e também fazer a média por 1 ano dos produtos que tem menos de 1 ano


Você especificou no post original que deseja uma média de 1 ano. O SQL
abaixo irá trazer *todos* os produtos, de 1 ano atrás até a data
atual. A média será pelo período inteiro (1 ano = 12 meses = 365 ou
366 dias se for ano bissexto). Com este código SQL abaixo você terá a
média do último ano de todos os produtos, independente de quando foram
cadastrados.


SELECT
pr.id_produto,
pr.nome_produto,
AVG(COALESCE(hv.qtde_produto,0)) as qtde_produto_media
FROM
produtos pr
LEFT OUTER JOIN
historico_vendas hv ON
pr.id_produto = hv.id_produto
WHERE
hv.data_venda >= CURRENT_DATE - INTERVAL '1 YEAR'
GROUP BY
pr.id_produto,
pr.nome_produto


Depois do envio do e-mail que eu me liguei que faltou fazer uma
pergunta: Você deseja a média diária, mensal, semanal ou qual período
dentro do ano? De uma forma grosseira, se você deseja a média mensal
dentro do ano, o SQL seria mais ou menos assim:

SELECT
pr.id_produto,
pr.nome_produto,
SUM(COALESCE(hv.qtde_produto,0))/12 as qtde_produto_media_mensal
FROM
produtos pr

LEFT OUTER JOIN
historico_vendas hv ON
pr.id_produto = hv.id_produto
WHERE
hv.data_venda >= CURRENT_DATE - INTERVAL '1 YEAR'
GROUP BY
pr.id_produto,
pr.nome_produto

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


Olá Tiago,

A forma que expressei não deu para entender bem!
Desejo a média mensal dos produtos que tiveram históricos na tabela 
historico_vendas.
Os produtos que tiveram movimentos durante um ano então faz a media 
mensal no período de um ano e os produtos que não tiveram movimentos na 
tabela historico_vendas então liste com a média zerada.


Sendo assim vai trazer todos os produtos cadastrados. Os que tiveram 
movimentos então faz a media mensal de um ano e os que não tiveram liste 
com média zero.


Acho que agora ficou mais claro.


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

Re: [pgbr-geral] Ajuda com Select

2016-08-06 Por tôpico Tiago José Adami
Em 6 de agosto de 2016 16:13, Tiago José Adami  escreveu:
> Em 5 de agosto de 2016 16:51, Edson F. Lidorio  
> escreveu:
>> Opa!
>> Quase isso, Preciso considerar:
>>
>> - todos os produtos
>
> Não ficou claro, mas acredito que você deseje incluir todos os
> produtos da tabela produto mesmo que não haja registros na tabela
> historico_vendas, correto? Isto pode ser resolvido com um LEFT/RIGHT
> OUTER JOIN. Veja o exemplo do SQL abaixo.
>
>> - e também fazer a média por 1 ano dos produtos que tem menos de 1 ano
>
> Você especificou no post original que deseja uma média de 1 ano. O SQL
> abaixo irá trazer *todos* os produtos, de 1 ano atrás até a data
> atual. A média será pelo período inteiro (1 ano = 12 meses = 365 ou
> 366 dias se for ano bissexto). Com este código SQL abaixo você terá a
> média do último ano de todos os produtos, independente de quando foram
> cadastrados.
>
>
> SELECT
> pr.id_produto,
> pr.nome_produto,
> AVG(COALESCE(hv.qtde_produto,0)) as qtde_produto_media
> FROM
> produtos pr
> LEFT OUTER JOIN
> historico_vendas hv ON
> pr.id_produto = hv.id_produto
> WHERE
> hv.data_venda >= CURRENT_DATE - INTERVAL '1 YEAR'
> GROUP BY
> pr.id_produto,
> pr.nome_produto

Depois do envio do e-mail que eu me liguei que faltou fazer uma
pergunta: Você deseja a média diária, mensal, semanal ou qual período
dentro do ano? De uma forma grosseira, se você deseja a média mensal
dentro do ano, o SQL seria mais ou menos assim:

SELECT
pr.id_produto,
pr.nome_produto,
SUM(COALESCE(hv.qtde_produto,0))/12 as qtde_produto_media_mensal
FROM
produtos pr

LEFT OUTER JOIN
historico_vendas hv ON
pr.id_produto = hv.id_produto
WHERE
hv.data_venda >= CURRENT_DATE - INTERVAL '1 YEAR'
GROUP BY
pr.id_produto,
pr.nome_produto

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

Re: [pgbr-geral] Ajuda com Select

2016-08-06 Por tôpico Tiago José Adami
Em 5 de agosto de 2016 16:51, Edson F. Lidorio  escreveu:
> Opa!
> Quase isso, Preciso considerar:
>
> - todos os produtos

Não ficou claro, mas acredito que você deseje incluir todos os
produtos da tabela produto mesmo que não haja registros na tabela
historico_vendas, correto? Isto pode ser resolvido com um LEFT/RIGHT
OUTER JOIN. Veja o exemplo do SQL abaixo.

> - e também fazer a média por 1 ano dos produtos que tem menos de 1 ano

Você especificou no post original que deseja uma média de 1 ano. O SQL
abaixo irá trazer *todos* os produtos, de 1 ano atrás até a data
atual. A média será pelo período inteiro (1 ano = 12 meses = 365 ou
366 dias se for ano bissexto). Com este código SQL abaixo você terá a
média do último ano de todos os produtos, independente de quando foram
cadastrados.


SELECT
pr.id_produto,
pr.nome_produto,
AVG(COALESCE(hv.qtde_produto,0)) as qtde_produto_media
FROM
produtos pr
LEFT OUTER JOIN
historico_vendas hv ON
pr.id_produto = hv.id_produto
WHERE
hv.data_venda >= CURRENT_DATE - INTERVAL '1 YEAR'
GROUP BY
pr.id_produto,
pr.nome_produto





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

Re: [pgbr-geral] Ajuda com Select

2016-08-05 Por tôpico Edson F. Lidorio

Em 2016-08-05 15:37, Tiago José Adami escreveu:
Em 5 de agosto de 2016 14:22, Edson F. Lidorio  
escreveu:

Boa tarde Pessoal,

Estou precisando de um ajuda para montar o select abaixo:
Preciso exibir uma média de consumo de produtos gastos nos últimos 12 
meses.
Considerando que só irei informar a data atual no select e que preciso 
pegar
todos produtos e fazer a medias de todos produtos gastos nos últimos 
12

meses.

Tabela: histórico_vendas
data_venda
id_produto
qtde_produto

Tabela: produtos
id_produto
nome_produto


Veja se isso te ajuda:

SELECT
hv.id_produto,
pr.nome_produto,
AVG(qtde_produto) as qtde_produto_media
FROM
historico_vendas hv
JOIN
produtos pr ON
pr.id_produto = hv.id_produto
WHERE
hv.data_venda >= CURRENT_DATE - INTERVAL '1 YEAR'
GROUP BY
hv.id_produto,
pr.nome_produto


TIAGO J. ADAMI
http://www.adamiworks.com
http://www.clouddba.com.br
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Opa!
Quase isso, Preciso considerar:

- todos os produtos
- e também fazer a média por 1 ano dos produtos que tem menos de 1 ano
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Re: [pgbr-geral] Ajuda com Select

2016-08-05 Por tôpico Tiago José Adami
Em 5 de agosto de 2016 14:22, Edson F. Lidorio  escreveu:
> Boa tarde Pessoal,
>
> Estou precisando de um ajuda para montar o select abaixo:
> Preciso exibir uma média de consumo de produtos gastos nos últimos 12 meses.
> Considerando que só irei informar a data atual no select e que preciso pegar
> todos produtos e fazer a medias de todos produtos gastos nos últimos 12
> meses.
>
> Tabela: histórico_vendas
> data_venda
> id_produto
> qtde_produto
>
> Tabela: produtos
> id_produto
> nome_produto

Veja se isso te ajuda:

SELECT
hv.id_produto,
pr.nome_produto,
AVG(qtde_produto) as qtde_produto_media
FROM
historico_vendas hv
JOIN
produtos pr ON
pr.id_produto = hv.id_produto
WHERE
hv.data_venda >= CURRENT_DATE - INTERVAL '1 YEAR'
GROUP BY
hv.id_produto,
pr.nome_produto


TIAGO J. ADAMI
http://www.adamiworks.com
http://www.clouddba.com.br
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

[pgbr-geral] Ajuda com Select

2016-08-05 Por tôpico Edson F. Lidorio

Boa tarde Pessoal,

Estou precisando de um ajuda para montar o select abaixo:
Preciso exibir uma média de consumo de produtos gastos nos últimos 12 
meses.
Considerando que só irei informar a data atual no select e que preciso 
pegar todos produtos e fazer a medias de todos produtos gastos nos 
últimos 12 meses.


Tabela: histórico_vendas
data_venda
id_produto
qtde_produto

Tabela: produtos
id_produto
nome_produto


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

[pgbr-geral] ajuda com SELECT

2015-10-01 Por tôpico Eloi

Boa tarde a todos na lista,

Gostaria de pedir ajuda para resolver a seguinte questão.

Tenho os seguintes dados:
45101;"A";4
45101;"S";23
45102;"A";4
45103;"S";23
45104;"A";4
45105;"S";23
45105;"W";3
45106;"S";23
45107;"A";4
45108;"W";3
45108;"A";4

Na primeira coluna esta um valor que se repete.
Na segunda coluna letras W, A e S, mas que podem ser outras.
Na terceira coluna o 'peso' correspondente a cada uma das letras. Cada 
letra tem sempre o mesmo peso.


Quero uma elaborar uma consulta onde:
1) o valor da primeira coluna não se repete
2) a letra da segunda coluna é a de menor peso
3) não se exclui os registos quando os valores da primeira coluna que 
não se repetem.


Resultado esperado:
45101;"A";4
45102;"A";4
45103;"S";23
45104;"A";4
45105;"W";3
45106;"S";23
45107;"A";4
45108;"W";3

Obrigado! Atentamente,

Eloi

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

Re: [pgbr-geral] Ajuda com select

2015-01-26 Por tôpico Flavio Henrique Araque Gurgel

Pessoal,

Estou executando esse select:

SELECT
 ped_data
 , SUM(CASE WHEN ped_coddepto = 3 THEN 1 ELSE 0 END) AS fiscal
 , SUM(CASE WHEN ped_coddepto = 5 THEN 1 ELSE 0 END) AS dsi
 , SUM(CASE WHEN ped_coddepto = 7 THEN 1 ELSE 0 END) AS agendamento
 , SUM(CASE WHEN ped_coddepto = 4 THEN 1 ELSE 0 END) AS logistica
 , SUM(CASE WHEN ped_coddepto = 6 THEN 1 ELSE 0 END) AS transportadora
 , COUNT(*) AS total
FROM pedido WHERE (ped_data  '2008-10-24')
GROUP BY ped_data
ORDER BY 1;

E obtenho esse resultado:

ped_data| fiscal | dsi | agendamento | logistica | transportadora |
total
-++-+-++--+---
  2008-10-20 |  1 |   0 |1 |   0
|0 | 2
  2008-10-21 |  1 |   0 |0 |   0
|0 | 1
  2008-10-22 |  2 |   0 |2 |   0
|0 | 4
  2008-10-23 |  0 |   1 |0 |   0
|0 | 1
(4 registros)

Onde cada coluna (com exceção de ped_data e total) representa um
departamento, ou seja, o resultado me mostra o total por data e
departamento.

O problema é que isso está totalmente manual, se for criado um novo
departamento terei que alterar a select para contemplar o novo
departamento,
existe a possibilidade de deixar algo mais natural, sem necessidade de
alterar o select a cada novo departamento criado?


Colocar colunas dinamicamente sempre foi algo complicado no mundo 
relacional.


Existem algumas formas de resolver isso, a mais clássica é não ter 
colunas dinâmicas, ou seja, você faz seus totais em linhas, como abaixo, 
montando as colunas na aplicação a partir do resultado:


SELECT
  ped_data
  ped_coddepto,
  count(ped_coddepto) as somatoria
 FROM pedido WHERE (ped_data  '2008-10-24')
 GROUP BY ped_data, ped_coddepto
 ORDER BY ped_data, ped_coddepto;

Eu colocaria uma tabela relacionada com os códigos e nomes de 
departamento, aí com um simples inner join você pode obter os nomes.


A segunda opção é olhar a extensão tablefunc que faz a transposição de 
linhas em colunas:

http://www.postgresql.org/docs/current/static/tablefunc.html

A terceira opçào é escrever uma função que te monte o SELECT de forma 
dinâmica. Aviso antecipadamente que é a mais complicadinha de fazer 
porque você obterá provavelmente um vetor de resultados pra facilitar o 
retorno.


[]s
Flavio Gurgel
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


[pgbr-geral] Ajuda com select

2015-01-23 Por tôpico Danilo Silva
Pessoal,

Estou executando esse select:

SELECT
ped_data
, SUM(CASE WHEN ped_coddepto = 3 THEN 1 ELSE 0 END) AS fiscal
, SUM(CASE WHEN ped_coddepto = 5 THEN 1 ELSE 0 END) AS dsi
, SUM(CASE WHEN ped_coddepto = 7 THEN 1 ELSE 0 END) AS agendamento
, SUM(CASE WHEN ped_coddepto = 4 THEN 1 ELSE 0 END) AS logistica
, SUM(CASE WHEN ped_coddepto = 6 THEN 1 ELSE 0 END) AS transportadora
, COUNT(*) AS total
FROM pedido WHERE (ped_data  '2008-10-24')
GROUP BY ped_data
ORDER BY 1;

E obtenho esse resultado:

ped_data| fiscal | dsi | agendamento | logistica | transportadora |
total
-++-+-++--+---
 2008-10-20 |  1 |   0 |1 |   0 |
 0 | 2
 2008-10-21 |  1 |   0 |0 |   0 |
  0 | 1
 2008-10-22 |  2 |   0 |2 |   0
|0 | 4
 2008-10-23 |  0 |   1 |0 |   0
|0 | 1
(4 registros)

Onde cada coluna (com exceção de ped_data e total) representa um
departamento, ou seja, o resultado me mostra o total por data e
departamento.

O problema é que isso está totalmente manual, se for criado um novo
departamento terei que alterar a select para contemplar o novo
departamento,
existe a possibilidade de deixar algo mais natural, sem necessidade de
alterar o select a cada novo departamento criado?

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


[pgbr-geral] Ajuda com select

2014-08-22 Por tôpico Danilo Silva
Pessoal,

Possuo uma tabela de histórico de leitura, onde cada registro possui o id
da tabela pai:

tabela_documento = tabela pai (contém os dados principais do objeto)
tabela_historico = historico de leituras (contém data, hora, origem e
destino de cada objeto).

Resumindo, para cada registro na tabela pai, eu posso ter vários registros
na tabela de histórico.

O meu problema está que por uma falha na programação, o sistema não
obedeceu essa regra, ficou no relacionamento 1 para 1.

Preciso agora corrigir isso, pegar todos os registros da tabela de
histórico e atualizá-los com um único id da tabela pai correspondente.

Pensei em utilizar a querie abaixo, onde eu monto o comando de update na
tabela de histórico e delete na tabela pai

SELECT
, 'UPDATE historico SET idpai =
'||split_part(string_agg(idpai::text,','),',',1)||' WHERE (idhistorico IN
('||string_agg(idhistorico::text,',')||'));'
, 'DELETE FROM tabela_pai WHERE (idpai IN
('||string_agg(idpai::text,',')||')) AND (idpai 
'||split_part(string_agg(idpai::text,','),',',1)||');'
FROM historico GROUP BY codempresa,codcliente,codproduto,codbarras HAVING
COUNT(*)  1

mas encontrei 2 problemas, o primeiro é a demora no select, cancelei o
select após 25 minutos (a tabela possui em torno de 980 mil registros), o
segundo é o limite de caracteres de retorno da função string_agg (retorna
parte dos códigos, pois no final fica (...).

Vamos lá, existe uma forma melhor de executar o eu preciso?

A função string_agg realmente possui essa limitação?

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


Re: [pgbr-geral] Ajuda com select

2014-08-22 Por tôpico Danilo Silva
Em 22 de agosto de 2014 21:43, Danilo Silva danilo.dsg.go...@gmail.com
escreveu:

 Pessoal,

 Possuo uma tabela de histórico de leitura, onde cada registro possui o id
 da tabela pai:

 tabela_documento = tabela pai (contém os dados principais do objeto)
 tabela_historico = historico de leituras (contém data, hora, origem e
 destino de cada objeto).

 Resumindo, para cada registro na tabela pai, eu posso ter vários registros
 na tabela de histórico.

 O meu problema está que por uma falha na programação, o sistema não
 obedeceu essa regra, ficou no relacionamento 1 para 1.

 Preciso agora corrigir isso, pegar todos os registros da tabela de
 histórico e atualizá-los com um único id da tabela pai correspondente.

 Pensei em utilizar a querie abaixo, onde eu monto o comando de update na
 tabela de histórico e delete na tabela pai

 SELECT
 , 'UPDATE historico SET idpai =
 '||split_part(string_agg(idpai::text,','),',',1)||' WHERE (idhistorico IN
 ('||string_agg(idhistorico::text,',')||'));'
 , 'DELETE FROM tabela_pai WHERE (idpai IN
 ('||string_agg(idpai::text,',')||')) AND (idpai 
 '||split_part(string_agg(idpai::text,','),',',1)||');'
 FROM historico GROUP BY codempresa,codcliente,codproduto,codbarras HAVING
 COUNT(*)  1

 mas encontrei 2 problemas, o primeiro é a demora no select, cancelei o
 select após 25 minutos (a tabela possui em torno de 980 mil registros), o
 segundo é o limite de caracteres de retorno da função string_agg (retorna
 parte dos códigos, pois no final fica (...).

 Vamos lá, existe uma forma melhor de executar o eu preciso?

 A função string_agg realmente possui essa limitação?


 ​Pessoal esqueci de mencionar que executei a select no pgadmin, estive
vendo pelo psql e parece que a limitação de caracteres da função string_agg
não acontece, talvez seja alguma coisa do pgadmin.

[]s
Danilo​
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Ajuda com select

2014-08-22 Por tôpico Danilo Silva
Em 22 de agosto de 2014 21:50, Danilo Silva danilo.dsg.go...@gmail.com
escreveu:


 Em 22 de agosto de 2014 21:43, Danilo Silva danilo.dsg.go...@gmail.com
 escreveu:

 Pessoal,

 Possuo uma tabela de histórico de leitura, onde cada registro possui o id
 da tabela pai:

 tabela_documento = tabela pai (contém os dados principais do objeto)
 tabela_historico = historico de leituras (contém data, hora, origem e
 destino de cada objeto).

 Resumindo, para cada registro na tabela pai, eu posso ter vários
 registros na tabela de histórico.

 O meu problema está que por uma falha na programação, o sistema não
 obedeceu essa regra, ficou no relacionamento 1 para 1.

 Preciso agora corrigir isso, pegar todos os registros da tabela de
 histórico e atualizá-los com um único id da tabela pai correspondente.

 Pensei em utilizar a querie abaixo, onde eu monto o comando de update na
 tabela de histórico e delete na tabela pai

 SELECT
 , 'UPDATE historico SET idpai =
 '||split_part(string_agg(idpai::text,','),',',1)||' WHERE (idhistorico IN
 ('||string_agg(idhistorico::text,',')||'));'
 , 'DELETE FROM tabela_pai WHERE (idpai IN
 ('||string_agg(idpai::text,',')||')) AND (idpai 
 '||split_part(string_agg(idpai::text,','),',',1)||');'
 FROM historico GROUP BY codempresa,codcliente,codproduto,codbarras HAVING
 COUNT(*)  1

 mas encontrei 2 problemas, o primeiro é a demora no select, cancelei o
 select após 25 minutos (a tabela possui em torno de 980 mil registros), o
 segundo é o limite de caracteres de retorno da função string_agg (retorna
 parte dos códigos, pois no final fica (...).

 Vamos lá, existe uma forma melhor de executar o eu preciso?

 A função string_agg realmente possui essa limitação?


 ​Pessoal esqueci de mencionar que executei a select no pgadmin, estive
 vendo pelo psql e parece que a limitação de caracteres da função string_agg
 não acontece, talvez seja alguma coisa do pgadmin.


 ​Pessoal,

Consegui executar o select através do comando COPY TO (levou 20s e retornou
16 mil registros), parece que a limitação foi mesmo com o pgadmin, pois a
função string_agg retornou todos os códigos.

[]s
Danilo ​
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


[pgbr-geral] Ajuda com select

2013-10-28 Por tôpico Danilo Silva
Pessoal,

Tendo a seguinte estrutura:

CREATE TABLE leitura (
codmovimento integer,
dtmovimento date,
codbarras text
);

INSERT INTO leitura VALUES
(1,'2013-01-04', 'ABCD'),
(1,'2013-01-04', 'ABCDEF'),
(2,'2013-01-05', 'ABCD'),
(1,'2013-01-03', 'XYZ'),
(1,'2013-01-07', 'FULANO'),
(2,'2013-01-07', 'XYZ');

Preciso fazer um select onde traga, uma coluna com o codmovimento e cada
dtmovimento sendo uma coluna com a contagem total de cada movimento,
exemplo:

codmovimento | 2013-01-03 | 2013-01-04 | 2013-01-05 | 2013-01-07
--+-++-+
   1 |1 |   2 |   0
|   1
   2 |0 |   0 |   1
|   1
(2 rows)

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


Re: [pgbr-geral] Ajuda com select

2013-10-28 Por tôpico Osvaldo Kussama
2013/10/28, Danilo Silva danilo.dsg.go...@gmail.com:
 Pessoal,

 Tendo a seguinte estrutura:

 CREATE TABLE leitura (
 codmovimento integer,
 dtmovimento date,
 codbarras text
 );

 INSERT INTO leitura VALUES
 (1,'2013-01-04', 'ABCD'),
 (1,'2013-01-04', 'ABCDEF'),
 (2,'2013-01-05', 'ABCD'),
 (1,'2013-01-03', 'XYZ'),
 (1,'2013-01-07', 'FULANO'),
 (2,'2013-01-07', 'XYZ');

 Preciso fazer um select onde traga, uma coluna com o codmovimento e cada
 dtmovimento sendo uma coluna com a contagem total de cada movimento,
 exemplo:

 codmovimento | 2013-01-03 | 2013-01-04 | 2013-01-05 | 2013-01-07
 --+-++-+
1 |1 |   2 |   0
 |   1
2 |0 |   0 |   1
 |   1
 (2 rows)



Pesquise por crosstab no módulo adicional tablefunc:
http://www.postgresql.org/docs/current/interactive/tablefunc.html

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] Ajuda com select

2013-10-28 Por tôpico Danilo Silva
2013/10/28 Osvaldo Kussama osvaldo.kuss...@gmail.com

 2013/10/28, Danilo Silva danilo.dsg.go...@gmail.com:
  Pessoal,
 
  Tendo a seguinte estrutura:
 
  CREATE TABLE leitura (
  codmovimento integer,
  dtmovimento date,
  codbarras text
  );
 
  INSERT INTO leitura VALUES
  (1,'2013-01-04', 'ABCD'),
  (1,'2013-01-04', 'ABCDEF'),
  (2,'2013-01-05', 'ABCD'),
  (1,'2013-01-03', 'XYZ'),
  (1,'2013-01-07', 'FULANO'),
  (2,'2013-01-07', 'XYZ');
 
  Preciso fazer um select onde traga, uma coluna com o codmovimento e cada
  dtmovimento sendo uma coluna com a contagem total de cada movimento,
  exemplo:
 
  codmovimento | 2013-01-03 | 2013-01-04 | 2013-01-05 | 2013-01-07
 
 --+-++-+
 1 |1 |   2 |
   0
  |   1
 2 |0 |   0 |
   1
  |   1
  (2 rows)
 


 Pesquise por crosstab no módulo adicional tablefunc:
 http://www.postgresql.org/docs/current/interactive/tablefunc.html

 Osvaldo


Aparentemente crosstab resolveria, mas eu teria que mencionar as colunas,
e no meu caso, não daria para saber quais são, já que as colunas seriam as
datas... a não ser que eu crie uma função para resolver o meu problema...

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


Re: [pgbr-geral] Ajuda com select

2013-10-28 Por tôpico Osvaldo Kussama
Em 28/10/13, Danilo Silvadanilo.dsg.go...@gmail.com escreveu:
 2013/10/28 Osvaldo Kussama osvaldo.kuss...@gmail.com

 2013/10/28, Danilo Silva danilo.dsg.go...@gmail.com:
  Pessoal,
 
  Tendo a seguinte estrutura:
 
  CREATE TABLE leitura (
  codmovimento integer,
  dtmovimento date,
  codbarras text
  );
 
  INSERT INTO leitura VALUES
  (1,'2013-01-04', 'ABCD'),
  (1,'2013-01-04', 'ABCDEF'),
  (2,'2013-01-05', 'ABCD'),
  (1,'2013-01-03', 'XYZ'),
  (1,'2013-01-07', 'FULANO'),
  (2,'2013-01-07', 'XYZ');
 
  Preciso fazer um select onde traga, uma coluna com o codmovimento e
  cada
  dtmovimento sendo uma coluna com a contagem total de cada movimento,
  exemplo:
 
  codmovimento | 2013-01-03 | 2013-01-04 | 2013-01-05 | 2013-01-07
 
 --+-++-+
 1 |1 |   2 |
   0
  |   1
 2 |0 |   0 |
   1
  |   1
  (2 rows)
 


 Pesquise por crosstab no módulo adicional tablefunc:
 http://www.postgresql.org/docs/current/interactive/tablefunc.html

 Osvaldo


 Aparentemente crosstab resolveria, mas eu teria que mencionar as colunas,
 e no meu caso, não daria para saber quais são, já que as colunas seriam as
 datas... a não ser que eu crie uma função para resolver o meu problema...



Creio que a variante de 2 parâmetros resolveria. (F.36.1.4.
crosstab(text, text))
O segundo parâmetro seria:
SELECT DISTINSCT dtmovimento FROM leitura ORDER BY 1;
Você teria a relação de todas as datas existentes.

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] Ajuda com select

2012-08-15 Por tôpico Edson - Listas
Pessoal, ainda não consegui encontrar o problema, segue o meu modelo no 
endereço abaixo:

http://imagebin.org/224706

Edson

Em 13/08/2012 21:21, Anselmo Silva escreveu:
Faça um modelo resumido do problema com a estrutura deste modelo para 
melhores dicas.
'Chutando' eu aconselharia que vc revisasse as ligações (joins), se 
estão consistentes.


2012/8/13 Edson - Listas edson...@gmail.com mailto:edson...@gmail.com

Olá Pessoal,

O meu select abaixo, esta duplicando as linhas, mesmo usando DISTINCT.

select DISTINCT  a.cd_fil,a.cd_ordem,a.dt_abertura,
a.cd_cli,f.nm_cli,f.de_endereco,f.fone,
a.vlr_final_os,a.vlr_desc_os,a.vlr_outros,
a.vlr_tot_prod,a.vlr_tot_serv,a.servico_solicitado,
a.de_ocorrencia,
h.de_cid,a.cd_funcio,e.nm_funcio,b.cd_prod,
g.de_prod,b.qtde_prod,b.vlr_unit_prod,b.perc_desc_prod,
b.vlr_desc_prod,b.vlr_prod,b.total_prod,
c.cd_servico,d.de_servico,c.qtd_serc,c.vlr_unit,
c.perc_desc_serv,c.vlr_desc,c.vlr_serv,
c.sub_total,
CASE
 WHEN a.fg_tipo_os = 'INS' THEN 'INSTALAÇÃO'
 WHEN a.fg_tipo_os = 'MAN' THEN 'MANUTENÇÃO'
 WHEN a.fg_tipo_os = 'MAN' THEN 'MANUTENÇÃO'
 WHEN a.fg_tipo_os = 'ACO' THEN 'À COBRAR'
 WHEN a.fg_tipo_os = 'GAR' THEN 'GARANTIA'
 WHEN a.fg_tipo_os = 'CON' THEN 'CONTRATO'
 WHEN a.fg_tipo_os = 'ORC' THEN 'ORÇAMENTO'
 ELSE 'OUTROS'
 END tipo_os,
 CASE
 WHEN a.fg_status_os = 'AB' THEN 'ABERTA'
 WHEN a.fg_status_os = 'FC' THEN 'FECHADA'
 ELSE 'INVÁLIDA'
 END status_os

from osservhe a inner JOIN  osprodut b
 on a.cd_ordem = b.cd_ordem
   inner join cliente f
 on a.cd_cli = f.cd_cli
inner join vendfunc e
 on a.cd_funcio = e.cd_funcio
   inner join osservde c
 on a.cd_ordem = c.cd_ordem
   left join produto g
 on b.cd_prod = g.cd_prod
   left join servicos d
 on c.cd_servico = d.cd_servico
   inner join cidade h on
   f.cd_cid = h.cd_cid
   order by a.dt_abertura,a.cd_ordem

___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
mailto: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


Re: [pgbr-geral] Ajuda com select

2012-08-15 Por tôpico Anselmo Silva
Edson, um toque: é meio complicado pro pessoal aqui ter tempo para refazer
seu modelo completo, inserir dados e detectar seu problema.
Sugestão: Faça um modelo simplificado da estrutura em que ocorre o
problema, detecte o problema e poste aqui. Algo como:

CREATE TABLE OS(XXX TYPE , YYY TYPE)...
INSERT INTO OS(...
SELECT DISTINCT(XXX...




Em 15 de agosto de 2012 22:45, Edson - Listas edson...@gmail.com escreveu:

  Pessoal, ainda não consegui encontrar o problema, segue o meu modelo no
 endereço abaixo:
   http://imagebin.org/224706

 Edson

 Em 13/08/2012 21:21, Anselmo Silva escreveu:

 Faça um modelo resumido do problema com a estrutura deste modelo para
 melhores dicas.
 'Chutando' eu aconselharia que vc revisasse as ligações (joins), se estão
 consistentes.

 2012/8/13 Edson - Listas edson...@gmail.com

 Olá Pessoal,

 O meu select abaixo, esta duplicando as linhas, mesmo usando DISTINCT.

 select DISTINCT  a.cd_fil,a.cd_ordem,a.dt_abertura,
 a.cd_cli,f.nm_cli,f.de_endereco,f.fone,
 a.vlr_final_os,a.vlr_desc_os,a.vlr_outros,
 a.vlr_tot_prod,a.vlr_tot_serv,a.servico_solicitado,
 a.de_ocorrencia,
 h.de_cid,a.cd_funcio,e.nm_funcio,b.cd_prod,
 g.de_prod,b.qtde_prod,b.vlr_unit_prod,b.perc_desc_prod,
 b.vlr_desc_prod,b.vlr_prod,b.total_prod,
 c.cd_servico,d.de_servico,c.qtd_serc,c.vlr_unit,
 c.perc_desc_serv,c.vlr_desc,c.vlr_serv,
 c.sub_total,
 CASE
  WHEN a.fg_tipo_os = 'INS' THEN 'INSTALAÇÃO'
  WHEN a.fg_tipo_os = 'MAN' THEN 'MANUTENÇÃO'
  WHEN a.fg_tipo_os = 'MAN' THEN 'MANUTENÇÃO'
  WHEN a.fg_tipo_os = 'ACO' THEN 'À COBRAR'
  WHEN a.fg_tipo_os = 'GAR' THEN 'GARANTIA'
  WHEN a.fg_tipo_os = 'CON' THEN 'CONTRATO'
  WHEN a.fg_tipo_os = 'ORC' THEN 'ORÇAMENTO'
  ELSE 'OUTROS'
  END tipo_os,
  CASE
  WHEN a.fg_status_os = 'AB' THEN 'ABERTA'
  WHEN a.fg_status_os = 'FC' THEN 'FECHADA'
  ELSE 'INVÁLIDA'
  END status_os

 from osservhe a inner JOIN  osprodut b
  on a.cd_ordem = b.cd_ordem
inner join cliente f
  on a.cd_cli = f.cd_cli
 inner join vendfunc e
  on a.cd_funcio = e.cd_funcio
inner join osservde c
  on a.cd_ordem = c.cd_ordem
left join produto g
  on b.cd_prod = g.cd_prod
left join servicos d
  on c.cd_servico = d.cd_servico
inner join cidade h on
f.cd_cid = h.cd_cid
order by a.dt_abertura,a.cd_ordem

 ___
 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 
 listpgbr-ge...@listas.postgresql.org.brhttps://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


Re: [pgbr-geral] Ajuda com select

2012-08-14 Por tôpico Matheus de Oliveira
On Mon, Aug 13, 2012 at 7:41 PM, Edson - Listas edson...@gmail.com wrote:

 Olá Pessoal,

 O meu select abaixo, esta duplicando as linhas, mesmo usando DISTINCT.

 select DISTINCT  a.cd_fil,a.cd_ordem,a.dt_abertura,
 a.cd_cli,f.nm_cli,f.de_endereco,f.fone,
 a.vlr_final_os,a.vlr_desc_os,a.vlr_outros,
 a.vlr_tot_prod,a.vlr_tot_serv,a.servico_solicitado,
 a.de_ocorrencia,
 h.de_cid,a.cd_funcio,e.nm_funcio,b.cd_prod,
 g.de_prod,b.qtde_prod,b.vlr_unit_prod,b.perc_desc_prod,
 b.vlr_desc_prod,b.vlr_prod,b.total_prod,
 c.cd_servico,d.de_servico,c.qtd_serc,c.vlr_unit,
 c.perc_desc_serv,c.vlr_desc,c.vlr_serv,
 c.sub_total,
 CASE
  WHEN a.fg_tipo_os = 'INS' THEN 'INSTALAÇÃO'
  WHEN a.fg_tipo_os = 'MAN' THEN 'MANUTENÇÃO'
  WHEN a.fg_tipo_os = 'MAN' THEN 'MANUTENÇÃO'
  WHEN a.fg_tipo_os = 'ACO' THEN 'À COBRAR'
  WHEN a.fg_tipo_os = 'GAR' THEN 'GARANTIA'
  WHEN a.fg_tipo_os = 'CON' THEN 'CONTRATO'
  WHEN a.fg_tipo_os = 'ORC' THEN 'ORÇAMENTO'
  ELSE 'OUTROS'
  END tipo_os,
  CASE
  WHEN a.fg_status_os = 'AB' THEN 'ABERTA'
  WHEN a.fg_status_os = 'FC' THEN 'FECHADA'
  ELSE 'INVÁLIDA'
  END status_os

 from osservhe a inner JOIN  osprodut b
  on a.cd_ordem = b.cd_ordem
inner join cliente f
  on a.cd_cli = f.cd_cli
 inner join vendfunc e
  on a.cd_funcio = e.cd_funcio
inner join osservde c
  on a.cd_ordem = c.cd_ordem
left join produto g
  on b.cd_prod = g.cd_prod
left join servicos d
  on c.cd_servico = d.cd_servico
inner join cidade h on
f.cd_cid = h.cd_cid
order by a.dt_abertura,a.cd_ordem


Tem certeza? Não são campos parecidos, mas não idênticos (p.e. com espaços
extras)?

Veja que o DISTINCT como você está usando tenta verificar *todas as colunas*,
se quiser só alguns campos tem que ser o DISTINCT ON, talvez você queria os
que estão no ORDER BY:

select DISTINCT ON (a.dt_abertura,a.cd_ordem)
a.cd_fil,a.cd_ordem,a.dt_abertura,
...

Atenciosamente,
--
Matheus de Oliveira
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


[pgbr-geral] Ajuda com select

2012-08-13 Por tôpico Edson - Listas
Olá Pessoal,

O meu select abaixo, esta duplicando as linhas, mesmo usando DISTINCT.

select DISTINCT  a.cd_fil,a.cd_ordem,a.dt_abertura,
a.cd_cli,f.nm_cli,f.de_endereco,f.fone,
a.vlr_final_os,a.vlr_desc_os,a.vlr_outros,
a.vlr_tot_prod,a.vlr_tot_serv,a.servico_solicitado,
a.de_ocorrencia,
h.de_cid,a.cd_funcio,e.nm_funcio,b.cd_prod,
g.de_prod,b.qtde_prod,b.vlr_unit_prod,b.perc_desc_prod,
b.vlr_desc_prod,b.vlr_prod,b.total_prod,
c.cd_servico,d.de_servico,c.qtd_serc,c.vlr_unit,
c.perc_desc_serv,c.vlr_desc,c.vlr_serv,
c.sub_total,
CASE
 WHEN a.fg_tipo_os = 'INS' THEN 'INSTALAÇÃO'
 WHEN a.fg_tipo_os = 'MAN' THEN 'MANUTENÇÃO'
 WHEN a.fg_tipo_os = 'MAN' THEN 'MANUTENÇÃO'
 WHEN a.fg_tipo_os = 'ACO' THEN 'À COBRAR'
 WHEN a.fg_tipo_os = 'GAR' THEN 'GARANTIA'
 WHEN a.fg_tipo_os = 'CON' THEN 'CONTRATO'
 WHEN a.fg_tipo_os = 'ORC' THEN 'ORÇAMENTO'
 ELSE 'OUTROS'
 END tipo_os,
 CASE
 WHEN a.fg_status_os = 'AB' THEN 'ABERTA'
 WHEN a.fg_status_os = 'FC' THEN 'FECHADA'
 ELSE 'INVÁLIDA'
 END status_os

from osservhe a inner JOIN  osprodut b
 on a.cd_ordem = b.cd_ordem
   inner join cliente f
 on a.cd_cli = f.cd_cli
inner join vendfunc e
 on a.cd_funcio = e.cd_funcio
   inner join osservde c
 on a.cd_ordem = c.cd_ordem
   left join produto g
 on b.cd_prod = g.cd_prod
   left join servicos d
 on c.cd_servico = d.cd_servico
   inner join cidade h on
   f.cd_cid = h.cd_cid
   order by a.dt_abertura,a.cd_ordem

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


Re: [pgbr-geral] Ajuda com select

2012-08-13 Por tôpico Anselmo Silva
Faça um modelo resumido do problema com a estrutura deste modelo para
melhores dicas.
'Chutando' eu aconselharia que vc revisasse as ligações (joins), se estão
consistentes.

2012/8/13 Edson - Listas edson...@gmail.com

 Olá Pessoal,

 O meu select abaixo, esta duplicando as linhas, mesmo usando DISTINCT.

 select DISTINCT  a.cd_fil,a.cd_ordem,a.dt_abertura,
 a.cd_cli,f.nm_cli,f.de_endereco,f.fone,
 a.vlr_final_os,a.vlr_desc_os,a.vlr_outros,
 a.vlr_tot_prod,a.vlr_tot_serv,a.servico_solicitado,
 a.de_ocorrencia,
 h.de_cid,a.cd_funcio,e.nm_funcio,b.cd_prod,
 g.de_prod,b.qtde_prod,b.vlr_unit_prod,b.perc_desc_prod,
 b.vlr_desc_prod,b.vlr_prod,b.total_prod,
 c.cd_servico,d.de_servico,c.qtd_serc,c.vlr_unit,
 c.perc_desc_serv,c.vlr_desc,c.vlr_serv,
 c.sub_total,
 CASE
  WHEN a.fg_tipo_os = 'INS' THEN 'INSTALAÇÃO'
  WHEN a.fg_tipo_os = 'MAN' THEN 'MANUTENÇÃO'
  WHEN a.fg_tipo_os = 'MAN' THEN 'MANUTENÇÃO'
  WHEN a.fg_tipo_os = 'ACO' THEN 'À COBRAR'
  WHEN a.fg_tipo_os = 'GAR' THEN 'GARANTIA'
  WHEN a.fg_tipo_os = 'CON' THEN 'CONTRATO'
  WHEN a.fg_tipo_os = 'ORC' THEN 'ORÇAMENTO'
  ELSE 'OUTROS'
  END tipo_os,
  CASE
  WHEN a.fg_status_os = 'AB' THEN 'ABERTA'
  WHEN a.fg_status_os = 'FC' THEN 'FECHADA'
  ELSE 'INVÁLIDA'
  END status_os

 from osservhe a inner JOIN  osprodut b
  on a.cd_ordem = b.cd_ordem
inner join cliente f
  on a.cd_cli = f.cd_cli
 inner join vendfunc e
  on a.cd_funcio = e.cd_funcio
inner join osservde c
  on a.cd_ordem = c.cd_ordem
left join produto g
  on b.cd_prod = g.cd_prod
left join servicos d
  on c.cd_servico = d.cd_servico
inner join cidade h on
f.cd_cid = h.cd_cid
order by a.dt_abertura,a.cd_ordem

 ___
 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


Re: [pgbr-geral] Ajuda com select

2012-08-01 Por tôpico Danilo Silva
 Eu não posso ajuda-lo por que não consegui entender como estão
 organizadas suas tabelas.
 Tente explicar com mais detalhes ou, talvez, algum outro colega tenha
 entendido e consiga ajuda-lo.

 Osvaldo




 -- Tabela documento:
 CREATE TABLE documento
 (
 codemp integer,
 codcto integer,
 codcli integer,
 codmovimento integer,
 codbarras varchar(60),
 coduser integer,
 dtcadastro date,
 hrcadastro time,
 );
 -- Tabela malote
 CREATE TABLE malote
 (
 codemp integer,
 codcto integer,
 codcli integer,
 codmovimento integer,
 nummalote varchar(60),
 numlacre varchar(60),
 coduser integer,
 dtcadastro date,
 hrcadastro time,
 );

 Em ambas as tabelas, o codmovimento pode receber: 1 - Entrada, 2 -
 Saida, 3 - Baixa.


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


Re: [pgbr-geral] Ajuda com select

2012-08-01 Por tôpico Sebastian Webber
Danilo,
o que você precisa fazer?

Sebastian Webberhttp://swebber.me

Date: Wed, 1 Aug 2012 11:20:22 -0300
From: danilo.dsg.go...@gmail.com
To: pgbr-geral@listas.postgresql.org.br
Subject: Re: [pgbr-geral] Ajuda com select




Eu não posso ajuda-lo por que não consegui entender como estão


organizadas suas tabelas.

Tente explicar com mais detalhes ou, talvez, algum outro colega tenha

entendido e consiga ajuda-lo.



Osvaldo

  
-- Tabela documento:CREATE TABLE documento(codemp integer,codcto integer,codcli 
integer,codmovimento integer,codbarras varchar(60),
coduser integer,dtcadastro date,hrcadastro time,); -- Tabela maloteCREATE TABLE 
malote(codemp integer,
codcto integer,codcli integer,codmovimento integer,nummalote 
varchar(60),numlacre varchar(60),coduser integer,dtcadastro date,hrcadastro 
time,
);

Em ambas as tabelas, o codmovimento pode receber: 1 - Entrada, 2 - Saida, 3 - 
Baixa.




___
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] Ajuda com select

2012-08-01 Por tôpico Osvaldo Kussama
Em 01/08/12, Danilo Silvadanilo.dsg.go...@gmail.com escreveu:
 Eu não posso ajuda-lo por que não consegui entender como estão
 organizadas suas tabelas.
 Tente explicar com mais detalhes ou, talvez, algum outro colega tenha
 entendido e consiga ajuda-lo.

 Osvaldo




 -- Tabela documento:
 CREATE TABLE documento
 (
 codemp integer,
 codcto integer,
 codcli integer,
 codmovimento integer,
 codbarras varchar(60),
 coduser integer,
 dtcadastro date,
 hrcadastro time,
 );
 -- Tabela malote
 CREATE TABLE malote
 (
 codemp integer,
 codcto integer,
 codcli integer,
 codmovimento integer,
 nummalote varchar(60),
 numlacre varchar(60),
 coduser integer,
 dtcadastro date,
 hrcadastro time,
 );

 Em ambas as tabelas, o codmovimento pode receber: 1 - Entrada, 2 -
 Saida, 3 - Baixa.





Quais os campos relacionam estas tabelas?
São todos aqueles que tem o mesmo nome ou apenas alguns deles? Em
suma: quais as chaves primárias e estrangeiras?
De onde você obtém o nome do usuário?
Por qt (por ex. em qtentrada) você quer dizer a quantidade de registros (count)?

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] Ajuda com select

2012-08-01 Por tôpico Danilo Silva


 Quais os campos relacionam estas tabelas?

Nenhum, são tabelas distintas.


 São todos aqueles que tem o mesmo nome ou apenas alguns deles? Em
 suma: quais as chaves primárias e estrangeiras?
 De onde você obtém o nome do usuário?
 Por qt (por ex. em qtentrada) você quer dizer a quantidade de registros
 (count)?

Sim, é count, no caso de qtentrada é count da tabela documento onde
codmovimento = 1, qtsaida_baixa é um count da tabela documento onde
codmovimento  1, qtmalote é um count da tabela malote onde codmovimento
= 1.

No geral preciso saber quantos registros foram lidos por cada usuário, mas
como esse processo envolve 2 tabelas (documento e malote) não sei como
fazer (de forma elegante) esse select .

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


Re: [pgbr-geral] Ajuda com select

2012-08-01 Por tôpico Guimarães Faria Corcete DUTRA , Leandro
2012/8/1 Danilo Silva danilo.dsg.go...@gmail.com:

 São todos aqueles que tem o mesmo nome ou apenas alguns deles? Em
 suma: quais as chaves primárias e estrangeiras?

Ou tu dás as estruturas completas, como pedido, ou fica difícil ajudar.
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


[pgbr-geral] Ajuda com select

2012-07-31 Por tôpico Danilo Silva
Pessoal, peço ajuda de vocês...

Tenho uma tabela onde são inseridos as leituras de documentos (entrada,
saida, baixa) e outra tabela com as leituras de malotes. Cada uma dessas
tabelas possui o usuário que executou a leitura. Preciso efetuar um select
que retorne as colunas: nome do usuario, quantidade de leitura de entrada,
quantidade de leitura de saida e baixa (somatório), quantidade de leitura
de malotes. Esse select ajudará na produtividade dos usuários. Exemplo:

usuarioqtentrada   qtsaida_baixa   qtmalote
C3PO  905
XYZ 12  15
ZÉ DAS COUVES   45  24  32

PostreSQL versão 8.2.

Obrigado a todos.

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


Re: [pgbr-geral] Ajuda com select

2012-07-31 Por tôpico Euler Taveira
On 01-08-2012 00:08, Danilo Silva wrote:
 Tenho uma tabela onde são inseridos as leituras de documentos (entrada, saida,
 baixa) e outra tabela com as leituras de malotes. Cada uma dessas tabelas
 possui o usuário que executou a leitura. Preciso efetuar um select que retorne
 as colunas: nome do usuario, quantidade de leitura de entrada, quantidade de
 leitura de saida e baixa (somatório), quantidade de leitura de malotes. Esse
 select ajudará na produtividade dos usuários. Exemplo:
  
Cadê o esquema das tabelas envolvidas?


-- 
   Euler Taveira de Oliveira - Timbira   http://www.timbira.com.br/
   PostgreSQL: Consultoria, Desenvolvimento, Suporte 24x7 e Treinamento
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Ajuda com select

2012-07-31 Por tôpico Osvaldo Kussama
Em 01/08/12, Danilo Silvadanilo.dsg.go...@gmail.com escreveu:
 Pessoal, peço ajuda de vocês...

 Tenho uma tabela onde são inseridos as leituras de documentos (entrada,
 saida, baixa) e outra tabela com as leituras de malotes. Cada uma dessas
 tabelas possui o usuário que executou a leitura. Preciso efetuar um select
 que retorne as colunas: nome do usuario, quantidade de leitura de entrada,
 quantidade de leitura de saida e baixa (somatório), quantidade de leitura
 de malotes. Esse select ajudará na produtividade dos usuários. Exemplo:

 usuarioqtentrada   qtsaida_baixa   qtmalote
 C3PO  905
 XYZ 12  15
 ZÉ DAS COUVES   45  24  32

 PostreSQL versão 8.2.

 Obrigado a todos.

 Danilo



Eu não posso ajuda-lo por que não consegui entender como estão
organizadas suas tabelas.
Tente explicar com mais detalhes ou, talvez, algum outro colega tenha
entendido e consiga ajuda-lo.

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


[pgbr-geral] ajuda com select

2012-07-24 Por tôpico flavio
Pessoal
poderiam me ajudar com uma select?

Tabela com as colunas: a,b,c,data
Todas as colunas fazem parte da chave.

Como listar todos os dados menos o registro com a maior data?
A minha intenção é excluir todos os registros, menos o ultimo (com a 
maior data).
Eu só sei que posso conseguir o ultimo agrupando e pedindo o max(data) 
mas não sei como fazer para listar todos menos este.

Obrigado pelas ideias...



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


Re: [pgbr-geral] ajuda com select

2012-07-24 Por tôpico Osvaldo Kussama
Em 24/07/12, flaviofla...@atttransbordo.com.br escreveu:
 Pessoal
 poderiam me ajudar com uma select?

 Tabela com as colunas: a,b,c,data
 Todas as colunas fazem parte da chave.

 Como listar todos os dados menos o registro com a maior data?
 A minha intenção é excluir todos os registros, menos o ultimo (com a
 maior data).
 Eu só sei que posso conseguir o ultimo agrupando e pedindo o max(data)
 mas não sei como fazer para listar todos menos este.

 Obrigado pelas ideias...



Use EXCEPT.

SELECT  a,b,c,data FROM sua_tabela
EXCEPT
SELECT a,b,c,MAX(data) FROM sua_tabela GROUP BY a, b, c;

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] ajuda com select

2012-07-24 Por tôpico flavio
Obrigado Osvaldo
Simples e direto.

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


[pgbr-geral] Ajuda com select (crosstab)

2011-09-26 Por tôpico Thiago
Pessoal, boa tarde.

Estou começando a utilizar o crosstab, porém estou com dificuldades para 
fazer o select desejado.
Tenho uma tabela na seguinte estrutura:

Filial
Ano
Mes
Produto
Qtde

Gostaria de fazer um select que trouxesse o resultado dos meses em 
coluna e agrupados por Filial+Produto+Ano.
O resultado ficaria asssim:

Filial Produto Ano Jan Fev Mar Abr Mai Jun Jul Ago Set Out Nov Dez
1  1   10  0   0   1   1   2   2   0   1   3   0   0   2
1  1   11  1   1   0   2   1   0   1   0   0   0   0   0
2  1   10  0   0   0   0   0   0   0   0   0   0   0   0

Alguém poderia me ajudar com este select, pois tenho até os seguinte 
momento o seguinte comando:

select *
from crosstab('
select Filial,Produto,Ano,Mes,Qtd
from Tabela
order by 1,2,3',
 'select m from generate_series(1,12) m')
as (
 Filial integer,
 Produto integer,
 Ano integer,
 Jan integer,
 Fev integer,
 Mar integer,
 Abr integer,
 Mai integer,
 Jun integer,
 Jul integer,
 Ago integer,
 Set integer,
 Out integer,
 Nov integer,
 Dez integer
)

Porém, não encontrei ainda um exemplo com mais de três colunas.
Alguém poderia me ajudar com essa query?

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] Ajuda com select (crosstab)

2011-09-26 Por tôpico Thiago
On 26/9/2011 17:41, Thiago wrote:
 Pessoal, boa tarde.

 Estou começando a utilizar o crosstab, porém estou com dificuldades para
 fazer o select desejado.
 Tenho uma tabela na seguinte estrutura:

 Filial
 Ano
 Mes
 Produto
 Qtde

 Gostaria de fazer um select que trouxesse o resultado dos meses em
 coluna e agrupados por Filial+Produto+Ano.
 O resultado ficaria asssim:

 Filial Produto Ano Jan Fev Mar Abr Mai Jun Jul Ago Set Out Nov Dez
 1  1   10  0   0   1   1   2   2   0   1   3   0   0   2
 1  1   11  1   1   0   2   1   0   1   0   0   0   0   0
 2  1   10  0   0   0   0   0   0   0   0   0   0   0   0

 Alguém poderia me ajudar com este select, pois tenho até os seguinte
 momento o seguinte comando:

 select *
 from crosstab('
   select Filial,Produto,Ano,Mes,Qtd
   from Tabela
   order by 1,2,3',
   'select m from generate_series(1,12) m')
 as (
   Filial integer,
   Produto integer,
   Ano integer,
   Jan integer,
   Fev integer,
   Mar integer,
   Abr integer,
   Mai integer,
   Jun integer,
   Jul integer,
   Ago integer,
   Set integer,
   Out integer,
   Nov integer,
   Dez integer
 )

 Porém, não encontrei ainda um exemplo com mais de três colunas.
 Alguém poderia me ajudar com essa query?

 Obrigado!

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


Galera, consegui resolver lendo um exemplo aqui do news mesmo. Deixando 
a primeira coluna como array eu consigo acessar os seus dados depois.

Obrigado!

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


[pgbr-geral] Ajuda com Select

2011-06-08 Por tôpico andersoncamilo
Bom dia a todos

Estou tentando fazer uma select para obter alguns resultados e não consegui
ainda gostaria da ajuda dos colegas.
Segue a tabela:
   voo_idSERIAL, 
   piloto_id INTEGER NOT NULL, 
   parapente_id   INTEGER NOT NULL, 
   data_vooDATE NOT NULL, 
   decolagem_id  INTEGER NOT NULL, 
   tempo   VARCHAR(5) NOT NULL, 
   dist_livreNUMERIC(9,3) NOT NULL, 
   dist_olc NUMERIC(9,3) NOT NULL, 
   pontos_xc  NUMERIC(6,2) NOT NULL, 

Preciso retornar dessa tabela as sete maiores pontuação (pontos_xc)  por
piloto (piloto_id)
e retornar a soma desses sete maiores vôos, tem caso que os pilotos tem mais
do que sete vôos e outros menos, quando tiver menos de 7, retorna os que
tiverem

Exemplo como deve retornar:

Piloto Total1° 2°  3°   4°     5°   6°  

7° 

2  468,63   107,85   89,60   87,72   85,27   42,86   29,33   25,00
4  465,69   117,54   66,95   65,85   62,06   54,47   53,32   43,50
1  367,50   103,11   61,30   60,29   44,81   34,73   31,76   28,50
3  305,1986,3372,09   64,63   35,89  32,21   10,04   
5  189,1286,3637,87   34,33   25,56   
8  176,5682,01   30,7314,85   14,20  11,39   10,197,19
9  167,1742,86   34,8328,52   27,40  26,56  
7  139,59   104,16   27,43  
6  150,7669,0639,7332,97
10  33,1023,10   
11  29,4018,40
12  28,3116,31
13 29,2616,26


Obgrigado 

Anderson Camilo



--
View this message in context: 
http://postgresql.1045698.n5.nabble.com/Ajuda-com-Select-tp4469995p4469995.html
Sent from the PostgreSQL - Brasil mailing list archive at Nabble.com.
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Ajuda com select

2011-06-07 Por tôpico Thiago
Obrigado pela dica. Nós já até temos um novo servidor com o PG 9 
instalado, o problema é que ao restaurar o backup nele apresentou 
centenas de erros.

Como o backup está um pouco grande e não podemos interromper a base, 
estamos ainda planejando como fazer essa troca.

Abraços!

Em 06/06/2011 15:45, Osvaldo Kussama escreveu:
 Em 06/06/11, Thiagozan...@farmaponte.com.br  escreveu:
 Osvaldo,

 Eu utilizo o PG 8.1, acho que por ser versão antiga não está
 reconhecendo o array_agg().



 Apenas para complementar: esta versão do PostgreSQL deixou de ter
 suporte em Novembro/2010.
 http://wiki.postgresql.org/wiki/PostgreSQL_Release_Support_Policy

 É aconselhável você planejar um upgrade para breve.

 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] Ajuda com select

2011-06-07 Por tôpico Leandro DUTRA
2011/6/7 Thiago zan...@farmaponte.com.br:

 Como o backup está um pouco grande e não podemos interromper a base,

pg_upgrade ou coisa semelhante?  Foge-me o nome certo…


-- 
skype:leandro.gfc.dutra?chat      Yahoo!: ymsgr:sendIM?lgcdutra
+55 (61) 3546 7191              gTalk: xmpp:leand...@jabber.org
+55 (11) 9406 7191        ICQ/AIM: aim:GoIM?screenname=61287803
BRAZIL GMT-3  MSN: msnim:chat?contact=lean...@dutra.fastmail.fm
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


[pgbr-geral] Ajuda com select

2011-06-06 Por tôpico Thiago
Galera, boa tarde!

Tenho a seguinte tabela de cupons e produtos:

Filial Caixa Data   Cupom Produto
1  1 01/04/2011 1 10
2  1 01/04/2011 2 10
1  1 01/04/2011 1 20
2  1 01/04/2011 3 30
1  1 01/04/2011 1 30
3  2 01/04/2011 7 20

Preciso de um select que me traga quais vendas que foram passadas no 
mesmo cupom os produtos (10,20,30). No caso da tabela de passei foi o 
cupom 1 da filial 1.

Existe alguma forma de fazer isso por select?

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] Ajuda com select

2011-06-06 Por tôpico Osvaldo Kussama
Em 06/06/11, Thiagozan...@farmaponte.com.br escreveu:
 Galera, boa tarde!

 Tenho a seguinte tabela de cupons e produtos:

 Filial Caixa Data   Cupom Produto
 1  1 01/04/2011 1 10
 2  1 01/04/2011 2 10
 1  1 01/04/2011 1 20
 2  1 01/04/2011 3 30
 1  1 01/04/2011 1 30
 3  2 01/04/2011 7 20

 Preciso de um select que me traga quais vendas que foram passadas no
 mesmo cupom os produtos (10,20,30). No caso da tabela de passei foi o
 cupom 1 da filial 1.

 Existe alguma forma de fazer isso por select?



Tente:

SELECT filial, caixa, array_agg(cupom) FROM sua_tabela GROUP BY filial, caixa;

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] Ajuda com select

2011-06-06 Por tôpico Thiago
Osvaldo,

Eu utilizo o PG 8.1, acho que por ser versão antiga não está 
reconhecendo o array_agg().

Mesmo assim obrigado!

Em 06/06/2011 15:16, Osvaldo Kussama escreveu:
 SELECT filial, caixa, array_agg(cupom) FROM sua_tabela GROUP BY filial, caixa;


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


Re: [pgbr-geral] Ajuda com select

2011-06-06 Por tôpico Osvaldo Kussama
Em 06/06/11, Thiagozan...@farmaponte.com.br escreveu:
 Osvaldo,

 Eu utilizo o PG 8.1, acho que por ser versão antiga não está
 reconhecendo o array_agg().

 Mesmo assim obrigado!

 Em 06/06/2011 15:16, Osvaldo Kussama escreveu:
 SELECT filial, caixa, array_agg(cupom) FROM sua_tabela GROUP BY filial,
 caixa;



Então veja a definição de array_accum, inclusive o exemplo, em:
http://www.postgresql.org/docs/8.1/static/xaggr.html

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] Ajuda com select

2011-06-06 Por tôpico Osvaldo Kussama
Em 06/06/11, Thiagozan...@farmaponte.com.br escreveu:
 Osvaldo,

 Eu utilizo o PG 8.1, acho que por ser versão antiga não está
 reconhecendo o array_agg().



Apenas para complementar: esta versão do PostgreSQL deixou de ter
suporte em Novembro/2010.
http://wiki.postgresql.org/wiki/PostgreSQL_Release_Support_Policy

É aconselhável você planejar um upgrade para breve.

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


[pgbr-geral] Ajuda com select

2011-04-15 Por tôpico fabiano.fernandes
Olá a todos!

Estou precisando de um empurrão para criação de um select ...

Alguem pode me ajudar? 

Tenho em uma tabela da seguinte forma:


ID  |  PNAME  |  DESCRIPTION | NOTE |  WEIGHT 
-+---+---+--+--
  3  | Bolt |  ACT - A   |4.5   | 2 
  3  | Bolt |  ACT - A   |5.0   | 2 
  3  | Bolt |  ACT - C   |3.0   | 2 
  3  | Bolt |  ACT - C   |1.0   | 2 
  3  | Bolt |  ACT - B   |2.0   | 1 
  3  | Bolt |  ACT - B   |0.5   | 1 



Preciso recuperar essas informações da seguinte forma:


 ID  |  PNAME  |  ACT - A |  WEIGHT | ACT - C |  WEIGHT | ACT - B |  WEIGHT 
-+---+-+--+-+---++--
  3  | Bolt |  9.5|2  | 4.0 |   2  
| 2.5|1 


Att
Fabiano Fernandes


--
View this message in context: 
http://postgresql.1045698.n5.nabble.com/Ajuda-com-select-tp4305614p4305614.html
Sent from the PostgreSQL - Brasil mailing list archive at Nabble.com.
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Ajuda com select

2011-04-15 Por tôpico Roberto Mello
2011/4/15 fabiano.fernandes cont...@fabianofernandes.adm.br:

 Preciso recuperar essas informações da seguinte forma:


  ID  |  PNAME  |  ACT - A |  WEIGHT | ACT - C |  WEIGHT | ACT - B |  WEIGHT
 -+---+-+--+-+---++--
  3  |     Bolt     |      9.5    |        2      |     4.0     |       2
 |     2.5    |    1

O óbvio seria com subconsultas e JOINs nessas subconsultas. Você
queria de alguma outra forma? Por que acho que vai ser difícil.

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


Re: [pgbr-geral] Ajuda com select

2011-04-15 Por tôpico Leonardo Cezar
2011/4/15 fabiano.fernandes cont...@fabianofernandes.adm.br:

 Preciso recuperar essas informações da seguinte forma:


  ID  |  PNAME  |  ACT - A |  WEIGHT | ACT - C |  WEIGHT | ACT - B |  WEIGHT
 -+---+-+--+-+---++--
  3  |     Bolt     |      9.5    |        2      |     4.0     |       2
 |     2.5    |    1

Utiliza as funções crosstab do módulo tablefunc do diretório contrib.

-Leo
-- 
Leonardo Cezar
http://postgreslogia.wordpress.com
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Ajuda com select

2011-04-15 Por tôpico Moisés Caribé
Segue um exemplo:

SELECT t.menu[1] AS r_no_menu, t.menu[2] AS r_id_menu, t.menu[3] AS
r_nu_posicao, t.menu[4] AS r_ed_url, t.menu[5] AS r_no_perfil, t.menu[6] AS
r_id_perfil, t.menu[7] AS r_id_menu_pai, t.menu[8] AS r_no_menu_pai,
t.cadastrar AS r_in_cadastrar, t.consultar AS r_in_consultar, t.editar AS
r_in_editar, t.excluir AS r_in_excluir, t.imprimir AS r_in_imprimir
   FROM crosstab('
SELECT ARRAY[m.men_no_menu::text, m.men_id_menu::text,
m.men_nu_posicao::text, m.men_ed_url::text, p.per_no_perfil::text,
p.per_id_perfil::text, m.men_id_menu_pai::text,
m2.men_no_menu::text] As menu,
  f.fun_tx_funcao::text As funcao,
pmf.per_in_permissao As valor
FROM sc_seguranca.tbfuncao f
INNER JOIN sc_seguranca.tbpermissao pmf ON
  f.fun_co_funcao = pmf.fun_co_funcao
INNER JOIN sc_seguranca.tbperfil p ON
pmf.per_id_perfil = p.per_id_perfil
INNER JOIN sc_seguranca.tbmenu m ON
pmf.men_id_menu = m.men_id_menu
LEFT JOIN sc_seguranca.tbmenu as m2 on
m.men_id_menu_pai = m2.men_id_menu
ORDER BY m.men_no_menu, p.per_no_perfil'::text, '
select f1.fun_tx_funcao as func
from sc_seguranca.tbfuncao f1'::text) t(menu text[], cadastrar
boolean, consultar boolean, editar boolean, excluir boolean, imprimir
boolean);

Espero ter ajudado.

2011/4/15 Leonardo Cezar lhce...@gmail.com

 2011/4/15 fabiano.fernandes cont...@fabianofernandes.adm.br:

  Preciso recuperar essas informações da seguinte forma:
 
 
   ID  |  PNAME  |  ACT - A |  WEIGHT | ACT - C |  WEIGHT | ACT - B |
  WEIGHT
 
 -+---+-+--+-+---++--
   3  | Bolt |  9.5|2  | 4.0 |   2
  | 2.5|1

 Utiliza as funções crosstab do módulo tablefunc do diretório contrib.

 -Leo
 --
 Leonardo Cezar
 http://postgreslogia.wordpress.com
 ___
 pgbr-geral mailing list
 pgbr-geral@listas.postgresql.org.br
 https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral




-- 
Moisés Caribé Ribeiro
AD, DBA
asmoi...@gmail.com
71-91350152

MCTS 70-431
https://mcp.microsoft.com/authenticate/validatemcp.aspx
Transcript ID: 879519
Access Code: 884D1F114FF24
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Ajuda com select

2011-04-15 Por tôpico Emerson Hermann
Olá Fabiano

Avaliar se vale a pena ... (desempenho, custo e complexidade)

Levando em consideração os dados que vc passou, verificar se atende ...

/*
Preciso recuperar essas informações da seguinte forma:


 ID  |  PNAME  |  ACT - A |  WEIGHT | ACT - C |  WEIGHT | ACT - B |  WEIGHT
-+---+-+--+-+---++--
 3  | Bolt |  9.5|2  | 4.0 |
2 | 2.5|1
*/

/*

DROP TABLE IF EXISTS teste;
CREATE TABLE teste
(
   id integer
 , pname  varchar(25)
 , descriptionvarchar(50)
 , note   numeric(10,1)
 , weight integer
);


INSERT INTO teste (id, pname, description, note, weight) VALUES  (  3
, 'Bolt' ,  'ACT - A'   ,4.5   , 2);
INSERT INTO teste (id, pname, description, note, weight) VALUES  (  3
, 'Bolt' ,  'ACT - A'   ,5.0   , 2);
INSERT INTO teste (id, pname, description, note, weight) VALUES  (  3
, 'Bolt' ,  'ACT - C'   ,3.0   , 2);
INSERT INTO teste (id, pname, description, note, weight) VALUES  (  3
, 'Bolt' ,  'ACT - C'   ,1.0   , 2);
INSERT INTO teste (id, pname, description, note, weight) VALUES  (  3
, 'Bolt' ,  'ACT - B'   ,2.0   , 1);
INSERT INTO teste (id, pname, description, note, weight) VALUES  (  3
, 'Bolt' ,  'ACT - B'   ,0.5   , 1);


*/

SELECT * FROM teste;


 SELECT id
  , pname
  , sum(ACT - A) AS ACT - A
  , sum(weight_a) weight
  , sum(ACT - C) AS ACT - C
  , sum(weight_c) weight
  , sum(ACT - B) AS ACT - B
  , sum(weight_b) weight
   FROM
  (
   SELECT id
, pname
, ACT - A
, CASE WHEN ACT - A  0 THEN
  weight
   ELSE
  0
  END AS weight_a

, ACT - C
, CASE WHEN ACT - C  0 THEN
  weight
   ELSE
  0
  END AS weight_c

, ACT - B
, CASE WHEN ACT - B  0 THEN
  weight
   ELSE
  0
  END AS weight_b
 FROM
(
 SELECT id
  , pname
  , weight
  , sum
  (
CASE WHEN description = 'ACT - A' THEN
 note
  ELSE
 0
 END
  ) AS ACT - A
  , sum
  ( CASE WHEN description = 'ACT - C' THEN
note
 ELSE
0
END
  ) AS ACT - C
  , sum
  (
CASE WHEN description = 'ACT - B' THEN
note
 ELSE
0
END
  ) AS ACT - B

   FROM teste
   GROUP BY id
  , pname
  , description
  , weight

) AS x
  ) AS y
   GROUP BY id
  , pname


Espero ter ajudado,

Emerson Hermann


Em 15 de abril de 2011 10:57, fabiano.fernandes
cont...@fabianofernandes.adm.br escreveu:
 Olá a todos!

 Estou precisando de um empurrão para criação de um select ...

 Alguem pode me ajudar?

 Tenho em uma tabela da seguinte forma:


 ID  |  PNAME  |  DESCRIPTION | NOTE |  WEIGHT
 -+---+---+--+--
  3  |     Bolt     |      ACT - A       |    4.5   |     2
  3  |     Bolt     |      ACT - A       |    5.0   |     2
  3  |     Bolt     |      ACT - C       |    3.0   |     2
  3  |     Bolt     |      ACT - C       |    1.0   |     2
  3  |     Bolt     |      ACT - B       |    2.0   |     1
  3  |     Bolt     |      ACT - B       |    0.5   |     1



 Preciso recuperar essas informações da seguinte forma:


  ID  |  PNAME  |  ACT - A |  WEIGHT | ACT - C |  WEIGHT | ACT - B |  WEIGHT
 -+---+-+--+-+---++--
  3  |     Bolt     |   

[pgbr-geral] Ajuda com select

2010-07-22 Por tôpico Thiago
Galera, bom dia.

Tenho a seguinte tabela:

Filial Dia_Semana
01 01
02 01
03 02
04 03
05 03
06 03
07 04
08 05
09 05

Preciso fazer um select nessa tabela que me retorne o seguinte resultado

Dia01 Dia02 Dia03 Dia04 Dia05 Dia06 Dia07
0103040708null  null
02null  05null  09null  null
null  null  06null  null  null  null

Situação: Tenho uma tabela que armazena a filial e o dia da semana em 
que cada filial é faturada, o número de filiais vai ser N mas o número 
de colunas no dia da semana sempre vai ser 7, não tenho como utilizar a 
função crosstab pois estou ainda atrasado no PG 8.1 e pelo visto vou 
demorar para sair dele.

Tem algum tipo de join de coluna para apenas mostrar o resultado, nem 
que eu faça subselects?

Obrigado.

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


[pgbr-geral] Ajuda com select

2010-07-06 Por tôpico Thiago
Galera, bom dia.

Seguinte, tenho uma tabela de itens de menu e gostaria de fazer um 
select que retornasse o resultado em forma de árvore, mais ou menos como 
no seguinte exemplo:

Tabela
ID  IDPai  Menu
1   0  Opcoes
2   0  Gerencial
3   1  Desconectar
4   1  Alterar senha
5   2  Criar usuarios
6   2  Liberar permissoes
7   6  Procurar
8   6  Qualquer coisa

Com essa tabela gostaria de um select que me trouxesse o resultado 
ordenado primeiramente pelas raizes (registro com IDPai = 0) e depois 
pelos filhos, mas o problema é apenas uma ramificação, cada filho pode 
conter outros filhos e assim por diante.

Por isso preciso que um select ou uma procedure me retorne o seguinte 
resultado:

Resultado

ID  IDPai  Menu
1   0  Opcoes
3 1  Desconectar
4 1  Alterar senha
2   0  Gerencial
5 2  Criar usuarios
7   5  Procurar
8   5  Qualquer coisa
6 2  Liberar permissoes

Algo parecido com isso

Alguém já passou por algo parecido e sabe como resolver, estou quebrando 
a cabeça aqui e está um pouco complicado.

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] Ajuda com select

2010-07-06 Por tôpico JotaComm
Olá,


Em 6 de julho de 2010 11:47, Thiago zan...@farmaponte.com.br escreveu:

 Galera, bom dia.


 Seguinte, tenho uma tabela de itens de menu e gostaria de fazer um
 select que retornasse o resultado em forma de árvore, mais ou menos como
 no seguinte exemplo:

 Tabela
 ID  IDPai  Menu
 1   0  Opcoes
 2   0  Gerencial
 3   1  Desconectar
 4   1  Alterar senha
 5   2  Criar usuarios
 6   2  Liberar permissoes
 7   6  Procurar
 8   6  Qualquer coisa

 Com essa tabela gostaria de um select que me trouxesse o resultado
 ordenado primeiramente pelas raizes (registro com IDPai = 0) e depois
 pelos filhos, mas o problema é apenas uma ramificação, cada filho pode
 conter outros filhos e assim por diante.

 Por isso preciso que um select ou uma procedure me retorne o seguinte
 resultado:

 Resultado

 ID  IDPai  Menu
 1   0  Opcoes
 3 1  Desconectar
 4 1  Alterar senha
 2   0  Gerencial
 5 2  Criar usuarios
 7   5  Procurar
 8   5  Qualquer coisa
 6 2  Liberar permissoes

 Algo parecido com isso

 Alguém já passou por algo parecido e sabe como resolver, estou quebrando
 a cabeça aqui e está um pouco complicado.


Qual versão do PG você está utilizando?


 Obrigado.

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



[]s
-- 
JotaComm
http://jotacomm.wordpress.com
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Ajuda com select

2010-07-06 Por tôpico Thiago
A seguinte:

PostgreSQL 8.1.11 on i686-redhat-linux-gnu, compiled by GCC gcc (GCC) 
4.1.2 20070626 (Red Hat 4.1.2-14)

Obrigado.

Em 06/07/2010 11:54, JotaComm escreveu:
 Olá,


 Em 6 de julho de 2010 11:47, Thiago
 zan...@farmaponte.com.br
 mailto:zan...@farmaponte.com.br escreveu:

 Galera, bom dia.


 Seguinte, tenho uma tabela de itens de menu e gostaria de fazer um
 select que retornasse o resultado em forma de árvore, mais ou menos como
 no seguinte exemplo:

 Tabela
 ID  IDPai  Menu
 1   0  Opcoes
 2   0  Gerencial
 3   1  Desconectar
 4   1  Alterar senha
 5   2  Criar usuarios
 6   2  Liberar permissoes
 7   6  Procurar
 8   6  Qualquer coisa

 Com essa tabela gostaria de um select que me trouxesse o resultado
 ordenado primeiramente pelas raizes (registro com IDPai = 0) e depois
 pelos filhos, mas o problema é apenas uma ramificação, cada filho pode
 conter outros filhos e assim por diante.

 Por isso preciso que um select ou uma procedure me retorne o seguinte
 resultado:

 Resultado

 ID  IDPai  Menu
 1   0  Opcoes
 3 1  Desconectar
 4 1  Alterar senha
 2   0  Gerencial
 5 2  Criar usuarios
 7   5  Procurar
 8   5  Qualquer coisa
 6 2  Liberar permissoes

 Algo parecido com isso

 Alguém já passou por algo parecido e sabe como resolver, estou quebrando
 a cabeça aqui e está um pouco complicado.


 Qual versão do PG você está utilizando?


 Obrigado.

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



 []s
 --
 JotaComm
 http://jotacomm.wordpress.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] Ajuda com select

2010-07-06 Por tôpico JotaComm
Olá,

Em 6 de julho de 2010 11:47, Thiago zan...@farmaponte.com.br escreveu:

 Galera, bom dia.

 Seguinte, tenho uma tabela de itens de menu e gostaria de fazer um
 select que retornasse o resultado em forma de árvore, mais ou menos como
 no seguinte exemplo:

 Tabela
 ID  IDPai  Menu
 1   0  Opcoes
 2   0  Gerencial
 3   1  Desconectar
 4   1  Alterar senha
 5   2  Criar usuarios
 6   2  Liberar permissoes
 7   6  Procurar
 8   6  Qualquer coisa

 Com essa tabela gostaria de um select que me trouxesse o resultado
 ordenado primeiramente pelas raizes (registro com IDPai = 0) e depois
 pelos filhos, mas o problema é apenas uma ramificação, cada filho pode
 conter outros filhos e assim por diante.

 Por isso preciso que um select ou uma procedure me retorne o seguinte
 resultado:

 Resultado

 ID  IDPai  Menu
 1   0  Opcoes
 3 1  Desconectar
 4 1  Alterar senha
 2   0  Gerencial
 5 2  Criar usuarios
 7   5  Procurar
 8   5  Qualquer coisa
 6 2  Liberar permissoes

 Algo parecido com isso

 Alguém já passou por algo parecido e sabe como resolver, estou quebrando
 a cabeça aqui e está um pouco complicado.


Lendo novamente o seu email não entendi muito bem o que você precisa :(


 Obrigado.

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



[]s
-- 
JotaComm
http://jotacomm.wordpress.com
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Ajuda com select

2010-07-06 Por tôpico Aldemir Vieira
Siga o caminho:
http://explainextended.com/2009/05/29/hierarchical-queries-in-postgresql/


2010/7/6 JotaComm jota.c...@gmail.com

 Olá,

 Em 6 de julho de 2010 11:47, Thiago zan...@farmaponte.com.br escreveu:

 Galera, bom dia.

 Seguinte, tenho uma tabela de itens de menu e gostaria de fazer um
 select que retornasse o resultado em forma de árvore, mais ou menos como
 no seguinte exemplo:

 Tabela
 ID  IDPai  Menu
 1   0  Opcoes
 2   0  Gerencial
 3   1  Desconectar
 4   1  Alterar senha
 5   2  Criar usuarios
 6   2  Liberar permissoes
 7   6  Procurar
 8   6  Qualquer coisa

 Com essa tabela gostaria de um select que me trouxesse o resultado
 ordenado primeiramente pelas raizes (registro com IDPai = 0) e depois
 pelos filhos, mas o problema é apenas uma ramificação, cada filho pode
 conter outros filhos e assim por diante.

 Por isso preciso que um select ou uma procedure me retorne o seguinte
 resultado:

 Resultado

 ID  IDPai  Menu
 1   0  Opcoes
 3 1  Desconectar
 4 1  Alterar senha
 2   0  Gerencial
 5 2  Criar usuarios
 7   5  Procurar
 8   5  Qualquer coisa
 6 2  Liberar permissoes

 Algo parecido com isso

 Alguém já passou por algo parecido e sabe como resolver, estou quebrando
 a cabeça aqui e está um pouco complicado.


 Lendo novamente o seu email não entendi muito bem o que você precisa :(


 Obrigado.

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



 []s
 --
 JotaComm
 http://jotacomm.wordpress.com

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




-- 
Forte abraço,

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


Re: [pgbr-geral] Ajuda com select

2010-07-06 Por tôpico Thiago
Entrei no site e lá me diz que funciona a partir do PG 8.3, no meu caso 
que utilizo o 8.1 não vai funcionar.

Obriagado pela ajuda.

Em 06/07/2010 12:28, Aldemir Vieira escreveu:
 Siga o caminho:
 http://explainextended.com/2009/05/29/hierarchical-queries-in-postgresql/


 2010/7/6 JotaComm jota.c...@gmail.com
 mailto:jota.c...@gmail.com

 Olá,

 Em 6 de julho de 2010 11:47, Thiago zan...@farmaponte.com.br
 mailto:zan...@farmaponte.com.br
 escreveu:

 Galera, bom dia.

 Seguinte, tenho uma tabela de itens de menu e gostaria de fazer um
 select que retornasse o resultado em forma de árvore, mais ou
 menos como
 no seguinte exemplo:

 Tabela
 ID  IDPai  Menu
 1   0  Opcoes
 2   0  Gerencial
 3   1  Desconectar
 4   1  Alterar senha
 5   2  Criar usuarios
 6   2  Liberar permissoes
 7   6  Procurar
 8   6  Qualquer coisa

 Com essa tabela gostaria de um select que me trouxesse o resultado
 ordenado primeiramente pelas raizes (registro com IDPai = 0) e
 depois
 pelos filhos, mas o problema é apenas uma ramificação, cada
 filho pode
 conter outros filhos e assim por diante.

 Por isso preciso que um select ou uma procedure me retorne o
 seguinte
 resultado:

 Resultado

 ID  IDPai  Menu
 1   0  Opcoes
 3 1  Desconectar
 4 1  Alterar senha
 2   0  Gerencial
 5 2  Criar usuarios
 7   5  Procurar
 8   5  Qualquer coisa
 6 2  Liberar permissoes

 Algo parecido com isso

 Alguém já passou por algo parecido e sabe como resolver, estou
 quebrando
 a cabeça aqui e está um pouco complicado.


 Lendo novamente o seu email não entendi muito bem o que você precisa :(


 Obrigado.

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



 []s
 --
 JotaComm
 http://jotacomm.wordpress.com

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




 --
 Forte abraço,

 Aldemir Vieira
 ==



 ___
 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] Ajuda com select

2010-07-06 Por tôpico Thiago
Olá,

O que eu preciso é utilizar um select com recursividade, pois os 
registros são ligados com outros de acordo com o campo IDPai e na busca 
gostaria de trazer um select que trouxesse os registros ordenados pela 
raiz principal e seus N filhos.

Em 06/07/2010 12:23, JotaComm escreveu:
 Olá,

 Em 6 de julho de 2010 11:47, Thiago zan...@farmaponte.com.br
 mailto:zan...@farmaponte.com.br escreveu:

 Galera, bom dia.

 Seguinte, tenho uma tabela de itens de menu e gostaria de fazer um
 select que retornasse o resultado em forma de árvore, mais ou menos como
 no seguinte exemplo:

 Tabela
 ID  IDPai  Menu
 1   0  Opcoes
 2   0  Gerencial
 3   1  Desconectar
 4   1  Alterar senha
 5   2  Criar usuarios
 6   2  Liberar permissoes
 7   6  Procurar
 8   6  Qualquer coisa

 Com essa tabela gostaria de um select que me trouxesse o resultado
 ordenado primeiramente pelas raizes (registro com IDPai = 0) e depois
 pelos filhos, mas o problema é apenas uma ramificação, cada filho pode
 conter outros filhos e assim por diante.

 Por isso preciso que um select ou uma procedure me retorne o seguinte
 resultado:

 Resultado

 ID  IDPai  Menu
 1   0  Opcoes
 3 1  Desconectar
 4 1  Alterar senha
 2   0  Gerencial
 5 2  Criar usuarios
 7   5  Procurar
 8   5  Qualquer coisa
 6 2  Liberar permissoes

 Algo parecido com isso

 Alguém já passou por algo parecido e sabe como resolver, estou quebrando
 a cabeça aqui e está um pouco complicado.


 Lendo novamente o seu email não entendi muito bem o que você precisa :(


 Obrigado.

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



 []s
 --
 JotaComm
 http://jotacomm.wordpress.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] Ajuda com select

2010-07-06 Por tôpico Osvaldo Kussama
Em 6 de julho de 2010 11:59, Thiago zan...@farmaponte.com.br escreveu:
 A seguinte:

 PostgreSQL 8.1.11 on i686-redhat-linux-gnu, compiled by GCC gcc (GCC)
 4.1.2 20070626 (Red Hat 4.1.2-14)

 Obrigado.

 Em 06/07/2010 11:54, JotaComm escreveu:
 Olá,


 Em 6 de julho de 2010 11:47, Thiago
 zan...@farmaponte.com.br
 mailto:zan...@farmaponte.com.br escreveu:

     Galera, bom dia.


     Seguinte, tenho uma tabela de itens de menu e gostaria de fazer um
     select que retornasse o resultado em forma de árvore, mais ou menos como
     no seguinte exemplo:

     Tabela
     ID  IDPai  Menu
     1   0      Opcoes
     2   0      Gerencial
     3   1      Desconectar
     4   1      Alterar senha
     5   2      Criar usuarios
     6   2      Liberar permissoes
     7   6      Procurar
     8   6      Qualquer coisa

     Com essa tabela gostaria de um select que me trouxesse o resultado
     ordenado primeiramente pelas raizes (registro com IDPai = 0) e depois
     pelos filhos, mas o problema é apenas uma ramificação, cada filho pode
     conter outros filhos e assim por diante.

     Por isso preciso que um select ou uma procedure me retorne o seguinte
     resultado:

     Resultado

     ID  IDPai  Menu
     1   0      Opcoes
     3     1      Desconectar
     4     1      Alterar senha
     2   0      Gerencial
     5     2      Criar usuarios
     7       5      Procurar
     8       5      Qualquer coisa
     6     2      Liberar permissoes

     Algo parecido com isso

     Alguém já passou por algo parecido e sabe como resolver, estou quebrando
     a cabeça aqui e está um pouco complicado.


 Qual versão do PG você está utilizando?



Em primeiro lugar você está utilizando uma versão bastante antiga. O
suporte a esta versão se encerrará em nov/2010 [1], planeje um upgrade
de versão.

Verifique a função connectby no módulo contrib tablefunc que, creio,
atenderá a suas necessidades. (deve existir um diretório contrib em
sua instalação do PostgreSQL)

Osvaldo

[1] http://wiki.postgresql.org/wiki/PostgreSQL_Release_Support_Policy
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


[pgbr-geral] Ajuda com SELECT

2010-06-08 Por tôpico Tiago Kepe

Bom dia,

Preciso selecionar o número de máquinas instaladas nos últimos seis meses, para 
cada um desses meses é necessário acumular o nº de máquinas instaladas até esse 
mês, tenho um select inicial que seleciona os últimos seis meses, porém não 
consigo acumular o valor:

SELECT
   initcap(mectb10_dm_inventario.inv_mes_nm) AS mes,
   cast(mectb10_dm_inventario.inv_mes as text),
   count(distinct inv_maquina) AS maquinas_instaladas Essa linha conta 
o número de máquinas instaladas, mas só do mês específico 
FROM
   mectb10_dm_inventario
WHERE
inv_mes BETWEEN date_part('month',CURRENT_DATE)-6 AND 
date_part('month',CURRENT_DATE)
GROUP BY
inv_mes_nm,
inv_mes
ORDER BY
inv_mes ASC



  
_
ACESSE O MESSENGER DO SEU CELULAR AGORA MESMO. CLIQUE E VEJA AQUI UM PASSO A 
PASSO.
http://celular.windowslive.com.br/messenger.asp?produto=Messengerutm_source=Live_Hotmailutm_medium=Taglineutm_content=ACESSEOMES83utm_campaign=MobileServices___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Ajuda com SELECT

2010-06-08 Por tôpico Osvaldo Kussama
Em 8 de junho de 2010 10:24, Tiago Kepe tiagok...@hotmail.com escreveu:
 Bom dia,

 Preciso selecionar o número de máquinas instaladas nos últimos seis meses,
 para cada um desses meses é necessário acumular o nº de máquinas instaladas
 até esse mês, tenho um select inicial que seleciona os últimos seis meses,
 porém não consigo acumular o valor:

 SELECT
    initcap(mectb10_dm_inventario.inv_mes_nm) AS mes,
    cast(mectb10_dm_inventario.inv_mes as text),
    count(distinct inv_maquina) AS maquinas_instaladas     Essa linha
 conta o número de máquinas instaladas, mas só do mês específico 
 FROM
    mectb10_dm_inventario
 WHERE
     inv_mes BETWEEN date_part('month',CURRENT_DATE)-6 AND
 date_part('month',CURRENT_DATE)
 GROUP BY
     inv_mes_nm,
     inv_mes
 ORDER BY
     inv_mes ASC



Supondo que o que você esteja chamando de inv_mes seja ano/mês,
utilize em sua cláusula WHERE:

WHERE inv_mes::date BETWEEN date_trunc('month',CURRENT_DATE) AND
date_trunc('month',CURRENT_DATE)-'6 months'::interval

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] Ajuda com SELECT

2010-06-08 Por tôpico Osvaldo Kussama
Em 8 de junho de 2010 12:51, Osvaldo Kussama
osvaldo.kuss...@gmail.com escreveu:
 Em 8 de junho de 2010 10:24, Tiago Kepe tiagok...@hotmail.com escreveu:
 Bom dia,

 Preciso selecionar o número de máquinas instaladas nos últimos seis meses,
 para cada um desses meses é necessário acumular o nº de máquinas instaladas
 até esse mês, tenho um select inicial que seleciona os últimos seis meses,
 porém não consigo acumular o valor:

 SELECT
    initcap(mectb10_dm_inventario.inv_mes_nm) AS mes,
    cast(mectb10_dm_inventario.inv_mes as text),
    count(distinct inv_maquina) AS maquinas_instaladas     Essa linha
 conta o número de máquinas instaladas, mas só do mês específico 
 FROM
    mectb10_dm_inventario
 WHERE
     inv_mes BETWEEN date_part('month',CURRENT_DATE)-6 AND
 date_part('month',CURRENT_DATE)
 GROUP BY
     inv_mes_nm,
     inv_mes
 ORDER BY
     inv_mes ASC



 Supondo que o que você esteja chamando de inv_mes seja ano/mês,
 utilize em sua cláusula WHERE:

 WHERE inv_mes::date BETWEEN date_trunc('month',CURRENT_DATE) AND
 date_trunc('month',CURRENT_DATE)-'6 months'::interval

 Osvaldo



Desculpe, resposta errada para seu problema.

Faça uma junção entre uma tabela dos meses desejados (por. ex.
utilizando oa função generate_series) e seu select utilizando o
comparador = para o mês.

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] Ajuda com Select

2010-05-28 Por tôpico Prof. Benedito A. Cruz
Acho que não expressei direito: é o tamanho do disco onde a tablespace está.
Fazia isso em Oracle mas não estou conseguindo no PG.

Bene


Em 27/05/2010 17:28, Osvaldo Kussama escreveu:
 Em 27 de maio de 2010 15:00, Prof. Benedito A. Cruzb...@cria.org.br  
 escreveu:

Creio que deve ser simples mas preciso de uma ajuda rápida numa query.
Queria fazer uma consulta que retornasse todas as tablespaces cujo tamanho
 fosse menor que 1 TB e que  que estivesse com menos de 15% de espaço livre.
A versão do PostgreSQL é a 8.4.

  

 Uma dúvida: Como, ou onde, você especifica o tamanho de uma tablespace?

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




-- 
This message has been scanned for viruses and
dangerous content by MailScanner, and is
believed to be clean.

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


Re: [pgbr-geral] Ajuda com Select

2010-05-28 Por tôpico Osvaldo Kussama
Em 28 de maio de 2010 11:41, Prof. Benedito A. Cruz b...@cria.org.br escreveu:
 Acho que não expressei direito: é o tamanho do disco onde a tablespace está.
 Fazia isso em Oracle mas não estou conseguindo no PG.

 Bene


 Em 27/05/2010 17:28, Osvaldo Kussama escreveu:
 Em 27 de maio de 2010 15:00, Prof. Benedito A. Cruzb...@cria.org.br  
 escreveu:

    Creio que deve ser simples mas preciso de uma ajuda rápida numa query.
    Queria fazer uma consulta que retornasse todas as tablespaces cujo 
 tamanho
 fosse menor que 1 TB e que  que estivesse com menos de 15% de espaço livre.
    A versão do PostgreSQL é a 8.4.



 Uma dúvida: Como, ou onde, você especifica o tamanho de uma tablespace?



A função pg_tablespace_size(oid ou nome) [1] fornece o espaço em disco
ocupado pela tablespace. Não sei como, de dentro do psql ou similar,
obter o espaço livre no disco para calcular o percentual desejado.

Osvaldo
[1] http://www.postgresql.org/docs/current/interactive/functions-admin.html
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Ajuda com Select

2010-05-28 Por tôpico Prof. Benedito A. Cruz


Em 28/05/2010 12:32, Osvaldo Kussama escreveu:
 Em 28 de maio de 2010 11:41, Prof. Benedito A. Cruzb...@cria.org.br  
 escreveu:

 Acho que não expressei direito: é o tamanho do disco onde a tablespace está.
 Fazia isso em Oracle mas não estou conseguindo no PG.

 Bene


 Em 27/05/2010 17:28, Osvaldo Kussama escreveu:
  
 Em 27 de maio de 2010 15:00, Prof. Benedito A. Cruzb...@cria.org.br
 escreveu:


 Creio que deve ser simples mas preciso de uma ajuda rápida numa query.
 Queria fazer uma consulta que retornasse todas as tablespaces cujo 
 tamanho
 fosse menor que 1 TB e que  que estivesse com menos de 15% de espaço livre.
 A versão do PostgreSQL é a 8.4.


  
 Uma dúvida: Como, ou onde, você especifica o tamanho de uma tablespace?



 A função pg_tablespace_size(oid ou nome) [1] fornece o espaço em disco
 ocupado pela tablespace. Não sei como, de dentro do psql ou similar,
 obter o espaço livre no disco para calcular o percentual desejado.


Oi Osvaldo, essa informação eu tenho em uma tabela.


 Osvaldo
 [1] http://www.postgresql.org/docs/current/interactive/functions-admin.html
 ___
 pgbr-geral mailing list
 pgbr-geral@listas.postgresql.org.br
 https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral




-- 
This message has been scanned for viruses and
dangerous content by MailScanner, and is
believed to be clean.

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


[pgbr-geral] Ajuda com Select

2010-05-27 Por tôpico Tiago Kepe

Oi pessoal,

Tô precisando de ajuda pra fazer um select.

Tenho uma tb que agrupa informações por cidade e para cada cidade eu tenho que 
selecionar a maior data da cidade e somar o valor de um campo para agrupar por 
estado ou regiao:

Tentei fazer isso de vária formas, mas ainda não consegui, alguém tem uma idéia?

Valew,

Tiago Kepe.
  
_
DEIXE SUAS CONVERSAS MAIS DIVERTIDAS. TRANSFORME AQUI SUAS FOTOS EM EMOTICONS, 
É GRÁTIS.
http://ilm.windowslive.com.br/?ocid=ILM:ILM:Hotmail:Tagline:1x1:Tagline___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Ajuda com Select

2010-05-27 Por tôpico Osvaldo Kussama
Em 27 de maio de 2010 10:06, Tiago Kepe tiagok...@hotmail.com escreveu:
 Oi pessoal,

 Tô precisando de ajuda pra fazer um select.

 Tenho uma tb que agrupa informações por cidade e para cada cidade eu tenho
 que selecionar a maior data da cidade e somar o valor de um campo para
 agrupar por estado ou regiao:

 Tentei fazer isso de vária formas, mas ainda não consegui, alguém tem uma
 idéia?



Você poderia colocar um exemplo do que deseja?
O que você deseja somar, por estado ou região, é apenas dos registros
selecionados com maior data para cada cidade?

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] Ajuda com Select

2010-05-27 Por tôpico Tiago Kepe

Consegui resolver colocando uma subconsulta no FROM a qual pega a maior data, a 
solução ficou assim:

SELECT 
to_char(CURRENT_DATE, 'DD/MM/') AS Brasil,
sum(mectb11_dm_auditoria.aud_instaladas) as Instaladas,  
CASE WHEN sum(mectb11_dm_auditoria.aud_previstas) -
sum(mectb11_dm_auditoria.aud_instaladas)  0 THEN 0 ELSE
sum(mectb11_dm_auditoria.aud_previstas) - 
sum(mectb11_dm_auditoria.aud_instaladas) END AS Nao_instaladas 
FROM
(select max(aud_data) as data, aud_inep as inep,  from mectb11_dm_auditoria 
group by inep) temp, 
mectb11_dm_auditoria
WHERE 
temp.data = mectb11_dm_auditoria.aud_data AND
temp.inep = mectb11_dm_auditoria.aud_inep;



Valew.

 Date: Thu, 27 May 2010 11:26:13 -0300
 From: osvaldo.kuss...@gmail.com
 To: pgbr-geral@listas.postgresql.org.br
 Subject: Re: [pgbr-geral] Ajuda com Select
 
 Em 27 de maio de 2010 10:06, Tiago Kepe tiagok...@hotmail.com escreveu:
  Oi pessoal,
 
  Tô precisando de ajuda pra fazer um select.
 
  Tenho uma tb que agrupa informações por cidade e para cada cidade eu tenho
  que selecionar a maior data da cidade e somar o valor de um campo para
  agrupar por estado ou regiao:
 
  Tentei fazer isso de vária formas, mas ainda não consegui, alguém tem uma
  idéia?
 
 
 
 Você poderia colocar um exemplo do que deseja?
 O que você deseja somar, por estado ou região, é apenas dos registros
 selecionados com maior data para cada cidade?
 
 Osvaldo
 ___
 pgbr-geral mailing list
 pgbr-geral@listas.postgresql.org.br
 https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
  
_
DEIXE SUAS CONVERSAS MAIS DIVERTIDAS. TRANSFORME AQUI SUAS FOTOS EM EMOTICONS, 
É GRÁTIS.
http://ilm.windowslive.com.br/?ocid=ILM:ILM:Hotmail:Tagline:1x1:Tagline___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Ajuda com Select

2010-05-27 Por tôpico Prof. Benedito A. Cruz

Caros

  Creio que deve ser simples mas preciso de uma ajuda rápida numa query.
  Queria fazer uma consulta que retornasse todas as tablespaces cujo 
tamanho fosse menor que 1 TB e que  que estivesse com menos de 15% de 
espaço livre.

  A versão do PostgreSQL é a 8.4.


Agradeço antecipadamente,

  Bene



--
This message has been scanned for viruses and
dangerous content by MailScanner, and is
believed to be clean.

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


Re: [pgbr-geral] Ajuda com Select

2010-05-27 Por tôpico Osvaldo Kussama
Em 27 de maio de 2010 15:00, Prof. Benedito A. Cruz b...@cria.org.br escreveu:

   Creio que deve ser simples mas preciso de uma ajuda rápida numa query.
   Queria fazer uma consulta que retornasse todas as tablespaces cujo tamanho
 fosse menor que 1 TB e que  que estivesse com menos de 15% de espaço livre.
   A versão do PostgreSQL é a 8.4.



Uma dúvida: Como, ou onde, você especifica o tamanho de uma tablespace?

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


[pgbr-geral] Ajuda com select

2010-04-07 Por tôpico Thiago
Galera, boa tarde.

Tenho uma tabela na seguinte estrutura.

filial qtde data
01 101/04/2010
01 301/04/2010
01 302/04/2010
01 803/04/2010
01 505/04/2010
02 301/04/2010
02 404/04/2010
03 102/04/2010

Com esses dados gostaria de ter um select que me retornasse o resultado 
de vendas agrupadas por dia, até ai tudo tranquilo mas gostaria de 
trazer cada dia em uma coluna do select, da seguinte forma.

FL D01 D02 D03 D04 D05
01 004 003 008 000 005
02 003 000 000 004 000
03 000 001 000 000 000

Será que exite alguma forma de fazer essa quebra, mesmo que seja por 
função, o período utilizado vai sempre ser um mês fechado.

Aproveitando o gancho, eu poderia fazer isso com uma função mas ficaria 
algo muito complicado, pois faria da seguinte forma.

Criaria um tipo para o retorno e traria os dados agrupados por data + 
filial e depois eu não saberia como setar o dia na variavel, existe 
alguma forma de fazer no psql como se faz por exemplo em delphi setar um 
nome do campo por uma string?

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] Ajuda com select

2010-04-07 Por tôpico JotaComm
Opa,

Em 7 de abril de 2010 13:58, Thiago zan...@farmaponte.com.br escreveu:

 Galera, boa tarde.

 Tenho uma tabela na seguinte estrutura.

 filial qtde data
 01 101/04/2010
 01 301/04/2010
 01 302/04/2010
 01 803/04/2010
 01 505/04/2010
 02 301/04/2010
 02 404/04/2010
 03 102/04/2010

 Com esses dados gostaria de ter um select que me retornasse o resultado
 de vendas agrupadas por dia, até ai tudo tranquilo mas gostaria de
 trazer cada dia em uma coluna do select, da seguinte forma.

 FL D01 D02 D03 D04 D05
 01 004 003 008 000 005
 02 003 000 000 004 000
 03 000 001 000 000 000

 Será que exite alguma forma de fazer essa quebra, mesmo que seja por
 função, o período utilizado vai sempre ser um mês fechado.


O contrib tablefunc pode ser a sua solução.


 Aproveitando o gancho, eu poderia fazer isso com uma função mas ficaria
 algo muito complicado, pois faria da seguinte forma.

 Criaria um tipo para o retorno e traria os dados agrupados por data +
 filial e depois eu não saberia como setar o dia na variavel, existe
 alguma forma de fazer no psql como se faz por exemplo em delphi setar um
 nome do campo por uma string?

 Obrigado.

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



[]s
-- 
JotaComm
http://jotacomm.wordpress.com
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Ajuda com select

2010-04-07 Por tôpico Fabricio Telles
Eu faço usando case junto com sum


select
filial
, sum(case when data = '2010-04-01' then qtde else 0 end) as D01
, sum(case when data = '2010-04-02' then qtde else 0 end) as D02

from tabela

group by 1


mas não é dinâmico

Att

Telles


2010/4/7 JotaComm jota.c...@gmail.com:
 Opa,

 Em 7 de abril de 2010 13:58, Thiago zan...@farmaponte.com.br escreveu:

 Galera, boa tarde.

 Tenho uma tabela na seguinte estrutura.

 filial qtde data
 01     1    01/04/2010
 01     3    01/04/2010
 01     3    02/04/2010
 01     8    03/04/2010
 01     5    05/04/2010
 02     3    01/04/2010
 02     4    04/04/2010
 03     1    02/04/2010

 Com esses dados gostaria de ter um select que me retornasse o resultado
 de vendas agrupadas por dia, até ai tudo tranquilo mas gostaria de
 trazer cada dia em uma coluna do select, da seguinte forma.

 FL D01 D02 D03 D04 D05
 01 004 003 008 000 005
 02 003 000 000 004 000
 03 000 001 000 000 000

 Será que exite alguma forma de fazer essa quebra, mesmo que seja por
 função, o período utilizado vai sempre ser um mês fechado.

 O contrib tablefunc pode ser a sua solução.

 Aproveitando o gancho, eu poderia fazer isso com uma função mas ficaria
 algo muito complicado, pois faria da seguinte forma.

 Criaria um tipo para o retorno e traria os dados agrupados por data +
 filial e depois eu não saberia como setar o dia na variavel, existe
 alguma forma de fazer no psql como se faz por exemplo em delphi setar um
 nome do campo por uma string?

 Obrigado.

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


 []s
 --
 JotaComm
 http://jotacomm.wordpress.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] Ajuda com select

2008-10-01 Por tôpico tetraetila®
Obrigado aos amigos, foi solucionado da seguinte maneira:


copy (select to_char( a017_dtem,'mmDD ), a017_vavn ... ) to 
E'\\windows\temp\tempor.txt' with delimiters '|'


Todos os campos tipo data me retornam a string ano, mês, dia. ( 20080930 ) aí 
faço minha exportação.


Agradecimento ao Willian, Renato...

Adilson Nunes



  - Original Message - 
  From: Marcelo Costa 
  To: Comunidade PostgreSQL Brasileira 
  Sent: Monday, September 29, 2008 11:39 PM
  Subject: Re: [pgbr-geral] Ajuda com select



  Olá, 

  2008/9/29 tetraetila® [EMAIL PROTECTED]

Olá Pessoal


Quando eu dou um select na minha tabela alguns campos retornam a data no 
formato:

2008-09-29

Como eu posso formatar esta data para não retornar os traços ( - ), 
separadores. 
Após o select preciso que a data venha apenas os números tipo: 20080929, 
pois
gravo em txt e faço uma importação dos dados logo em seguida e este traços 
estão me atrapalhando.

  Use regexp_replace [1]

  select regexp_replace('2008-08-08',E'[\\-\\.]', '','g');


  [1] http://www.regular-expressions.info/postgresql.html

  -- 
  Marcelo Costa



--


  ___
  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] Ajuda com select

2008-09-30 Por tôpico William Leite Araújo
=# select to_char(current_date,'mmDD');
 to_char
--
 20080930
(1 registro)


2008/9/30 Lucas Fernando Vasconcelos de Arruda Amorim 
[EMAIL PROTECTED]

 Saudações,

 Acredito que seja interessante você ler.


 http://www.postgresql.org/docs/8.2/static/datatype-datetime.html#DATATYPE-DATETIME-OUTPUT

 Uma maneira não muito recomendável de se fazer, mas funciona.

 set DATESTYLE to ISO;
 select replace(CAMPO,'-','') as CAMPO from TABELA where CAMPO is not null;

 tetraetila(R) escreveu:
  Olá Pessoal
 
 
  Quando eu dou um select na minha tabela alguns campos retornam a data no
 formato:
 
  2008-09-29
 
  Como eu posso formatar esta data para não retornar os traços ( - ),
 separadores.
  Após o select preciso que a data venha apenas os números tipo: 20080929,
 pois
  gravo em txt e faço uma importação dos dados logo em seguida e este
 traços
  estão me atrapalhando.
 
 
  Muito obrigado!
 
 
  Adilson Nunes
 
 
 
 
 
  
 
  ___
  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




-- 
William Leite Araújo
Analista de Banco de Dados - QualiConsult
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Ajuda com Select

2008-09-30 Por tôpico Vi
Boa tarde!!
da uma olhada nesse link
http://pgdocptbr.sourceforge.net/pg80/app-psql.html,
mas para o que vc precisa deve ser isso:


\a (enter) - alinha os registros
\t (enter) - pode exibir ou não os nomes dos campos
\f ; (enter) - delimitador, aqui usei ponto e virgula, mas vc pode usar
outro delimitador de sua preferencia
\o /diretorio_destino/nome_do_arquivo.extensao (enter) - direciona o arquivo
para o local indicado
select * from tabela


espero ter ajudado.

Em 30/09/08, Rodrigo Marins [EMAIL PROTECTED] escreveu:


 Preciso gravar o resultado de um select em um arquivo DBF.
 Alguém sabe como posso fazê-lo? No Postgres eu gravo para TXT.

 copy from (select * from tabela) to E'\\Temp\\arquivo.txt'

 Preciso salvar em DBF, exportar.



 Olha śo consegui essa referência, mas é em Perl:
 http://search.cpan.org/~janpaz/DBD-XBase-0.241/lib/XBase.pmhttp://search.cpan.org/%7Ejanpaz/DBD-XBase-0.241/lib/XBase.pm

 Utilitários de conversão:
 Pg2Xbase
 http://linux.dltube.net/download6013.html

 Ou você pode formatar a consulta com um delimitador pelo próprio COPY.
  COPY [ BINARY ] table [ WITH OIDS ]
 TO { 'filename' | stdout }
 [ [ USING ] DELIMITERS 'delimiter' ]
 [ WITH NULL AS 'null_string' ]


 Espero ter ajudado.
 --
 Rodrigo Marins
 http://pgcon.postgresql.org.br/
 http://portaldodesenvolvedor.com.br/
 (11) 8747-7442

 ___
 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] Ajuda com select

2008-09-30 Por tôpico Jota
Olá,

Existem várias possibilidades, por exemplo:

SELECT to_char(data,'MMDD') FROM tabela;

[]s


2008/9/29 tetraetila(R) [EMAIL PROTECTED]:
 Olá Pessoal


 Quando eu dou um select na minha tabela alguns campos retornam a data no
 formato:

 2008-09-29

 Como eu posso formatar esta data para não retornar os traços ( - ),
 separadores.
 Após o select preciso que a data venha apenas os números tipo: 20080929,
 pois
 gravo em txt e faço uma importação dos dados logo em seguida e este traços
 estão me atrapalhando.


 Muito obrigado!


 Adilson Nunes




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





-- 
João Paulo
www.dextra.com.br/postgres
PostgreSQL
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


[pgbr-geral] Ajuda com select

2008-09-29 Por tôpico tetraetila®
Olá Pessoal


Quando eu dou um select na minha tabela alguns campos retornam a data no 
formato:

2008-09-29

Como eu posso formatar esta data para não retornar os traços ( - ), 
separadores. 
Após o select preciso que a data venha apenas os números tipo: 20080929, pois
gravo em txt e faço uma importação dos dados logo em seguida e este traços 
estão me atrapalhando.


Muito obrigado!


Adilson Nunes



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


[pgbr-geral] Ajuda com Select

2008-09-29 Por tôpico tetraetila®
 Olá pessoal!

Preciso gravar o resultado de um select em um arquivo DBF. 
Alguém sabe como posso fazê-lo? No Postgres eu gravo para TXT.

copy from (select * from tabela) to E'\\Temp\\arquivo.txt'

Preciso salvar em DBF, exportar.

Muito 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] Ajuda com select

2008-09-29 Por tôpico Marcelo Costa
Olá,
2008/9/29 tetraetila(R) [EMAIL PROTECTED]

  Olá Pessoal


 Quando eu dou um select na minha tabela alguns campos retornam a data no
 formato:

 2008-09-29

 Como eu posso formatar esta data para não retornar os traços ( - ),
 separadores.
 Após o select preciso que a data venha apenas os números tipo: 20080929,
 pois
 gravo em txt e faço uma importação dos dados logo em seguida e este traços
 estão me atrapalhando.


Use regexp_replace [1]

select regexp_replace('2008-08-08',E'[\\-\\.]', '','g');

[1] http://www.regular-expressions.info/postgresql.html

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


Re: [pgbr-geral] Ajuda com select

2008-09-29 Por tôpico sergio santos
Olá Adilson

 Após o select preciso que a data venha apenas os números tipo: 20080929


não sei se é recomendado mais vc consegue esse resultado fazendo assim:
select replace(now(), '-', '')

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


Re: [pgbr-geral] Ajuda com select

2008-09-29 Por tôpico Lucas Fernando Vasconcelos de Arruda Amorim
Saudações,

Acredito que seja interessante você ler.

http://www.postgresql.org/docs/8.2/static/datatype-datetime.html#DATATYPE-DATETIME-OUTPUT

Uma maneira não muito recomendável de se fazer, mas funciona.

set DATESTYLE to ISO;
select replace(CAMPO,'-','') as CAMPO from TABELA where CAMPO is not null;

tetraetila® escreveu:
 Olá Pessoal


 Quando eu dou um select na minha tabela alguns campos retornam a data no 
 formato:

 2008-09-29

 Como eu posso formatar esta data para não retornar os traços ( - ), 
 separadores. 
 Após o select preciso que a data venha apenas os números tipo: 20080929, pois
 gravo em txt e faço uma importação dos dados logo em seguida e este traços 
 estão me atrapalhando.


 Muito obrigado!


 Adilson Nunes



  
   
 

 ___
 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] Ajuda com select

2007-08-20 Por tôpico Edinho - Analista
Ok Euler! Deu certo

--
Edinho

Euler Taveira de Oliveira [EMAIL PROTECTED] escreveu: Edinho - Analista wrote:

 select apt_help_he.no_ordem,apt_help
 _he.dt_ordem,
apt_help_he.cd_equip,equipto.no_serie,
apt_help_he.cd_depto,
depto.de_depto,apt_help_he.hora_solicita,
apt_help_he.objeto,
apt_help_he.prioridade,apt_help_he.user_solicita,
apt_help_he.de_obs
 from apt_help_he  left join equipto on
  equipto.cd_equip  = apt_help_he.cd_equip
  left JOIN depto ON
  depto.cd_depto = apt_help_he.cd_depto and
^^^
Que tal alterar o AND para um WHERE ou utilizar parênteses para mudar a
ordem de avaliação das junções.

 apt_help_he.dt_ordem BETWEEN to_date('02/08/2007','DD/MM/') and
 to_date('26/08/2007','DD/MM/')
 AND apt_help_he.fg_ordem IN (3)
 order by apt_help_he.no_ordem,apt_help_he.dt_ordem
 

PS é assunto *novo*, crie um *novo* e-mail. Isso só bagunça o histórico.


-- 
  Euler Taveira de Oliveira
  http://www.timbira.com/
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral



Assine - [EMAIL PROTECTED]
   Flickr agora em português. Você clica, todo mundo vê. Saiba mais.___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral