Re: Como convertir los SELECT que usan AS en otros manejadores a Postrgres

Lists: pgsql-es-ayuda
From: Orlando Ramirez <orlan2_r(at)yahoo(dot)com>
To: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Como convertir los SELECT que usan AS en otros manejadores a Postrgres
Date: 2007-05-10 20:27:55
Message-ID: 861831.59231.qm@web52106.mail.re2.yahoo.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-es-ayuda

Estoy migrando una base de datos de Sybase a Postgres y en muchos de los SELECT se usan la sentencia AS. Para ilustrarlo supongamos que tenemos una tabla cuyas columnas son column_id y column_description. Sus filas son:

column_id column_description
1111------------------description 1
111101---------------description 2
11110101------------description 3
1121------------------description 4
112101---------------description 5
11210101------------description 6
1131------------------description 7
113101---------------description 8
11310101------------description 9

Necesito mostrar (en filas no-repetidas) los 4 primeros caracteres del identificador de columna (column_id) y su respectiva descripcion (column_description) de las filas de esta tabla que cumplen una determinada condicion.

En Sybase (usando subsconsultas) la sentencia tiene esta forma:

SELECT distinct(substring(column_id,1,4)) AS columna, (select column_description from tabla where column_id=columna) from tabla
WHERE <condicion>

Pero en Postgres cuando se hace esto el identificador columna definido con AS no es reconocido en la subconsulta (¿?).

¿Como hacerlo de una manera eficiente (sin tener que usar otra subconsulta)?

Agradezco de antemano las sugerencias.

Orlando Ramirez
http-peru


---------------------------------
Ahhh...imagining that irresistible "new car" smell?
Check outnew cars at Yahoo! Autos.


From: "Roberto Tortolero" <roberto(dot)tortolero(at)gmail(dot)com>
To: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Como convertir los SELECT que usan AS en otros manejadores a Postrgres
Date: 2007-05-10 20:58:59
Message-ID: b9962380705101358idec258tbe8cb4542274f28b@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-es-ayuda

Buenas, ya pude levantar los dos servicios postgresql en nuestro servidor,
los dos se ejecutan y no hay conflictos entre ellos (que yo sepa), el
detalle es que cuando se trata de accesar la version 8.2.4 del postgresql a
traves del Sql Manager de EMS dice que no hay conexion o que ese host no
existe.

Las dos versiones estan corriendo en puertos diferentes, y con el puerto
5432 (el predeterminado de postgresql) si hay acceso a traves del sql
manager, con la version 8.0.4, pero por el otro puerto no tiene acceso, que
es el que tiene la version nueva 8.2.4.

Si me pudieran iluminar con una buena sugerencia, mucho lo agradeceria.

Gracias de antemano.


From: Gabriel Hermes Colina Zambra <hermeszambra(at)yahoo(dot)com>
To: Roberto Tortolero <roberto(dot)tortolero(at)gmail(dot)com>, pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Como convertir los SELECT que usan AS en otros manejadores a Postrgres
Date: 2007-05-10 21:21:24
Message-ID: 873406.2786.qm@web63715.mail.re1.yahoo.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-es-ayuda


> Las dos versiones estan corriendo en puertos
> diferentes, y con el puerto
> 5432 (el predeterminado de postgresql) si hay acceso
> a traves del sql
> manager, con la version 8.0.4, pero por el otro
> puerto no tiene acceso, que
> es el que tiene la version nueva 8.2.4.
>
> Si me pudieran iluminar con una buena sugerencia,
> mucho lo agradeceria.
>
> Gracias de antemano.
>

Te sugiero ver el pg_hba.conf del que no se conecta,
sabiendo que eso esta bien, cuando te registres
localhost o mediante la ip con el EMS, fijate que uno
de los parametros de registros es el puerto, pero aqui
hay una pequenia cosita a tener encuenta.

Firewall, en las excepciones uno crea una con el
nombre por ejemplo psql y le dice que acepte 5432,
fuiste ahi y abriste otra excepcion para el nuevo
puerto donde escuchas ? por que si no ni modo.

Espero que te sirva estas cuestiones, manteneme al
tanto del resultado por favor.

Atte.
Gabriel Hermes Colina Zambra.

__________________________________________________
Correo Yahoo!
Espacio para todos tus mensajes, antivirus y antispam ¡gratis!
Regístrate ya - http://correo.espanol.yahoo.com/


From: "Roberto Tortolero" <roberto(dot)tortolero(at)gmail(dot)com>
To: pgsql-es-ayuda(at)postgresql(dot)org, hermeszambra(at)yahoo(dot)com
Subject: Re: Como convertir los SELECT que usan AS en otros manejadores a Postrgres
Date: 2007-05-10 21:40:23
Message-ID: b9962380705101440u63692e81y2db821b430f5c8d6@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-es-ayuda

Si, ya creamos la excepcion en el firewall, el detalle es que a nivel de
localhost no me puedo conectar ya que el servidor es linux y esta en otra
locacion.

Me conecto por el EMS y claro, seteo el puerto para que lo localice por ese
puerto, la cuestion me la hace solo para el puerto 5432 pero no para el
nuevo puerto.

Pensamos que pueda ser un problema con el linux, que no creamos bien al
ususario nuevo para que se encargue de la cuenta del postgresql 8.2.4, ahora
vamos a recompilar y hacer todo otra vez a ver que pueda pasar.

Si tiene otra sugerencia, mucho lo apreciaria.

Gracias de antemano.


From: "Roberto Tortolero" <roberto(dot)tortolero(at)gmail(dot)com>
To: pgsql-es-ayuda(at)postgresql(dot)org, hermeszambra(at)yahoo(dot)com
Subject: Re: Como convertir los SELECT que usan AS en otros manejadores a Postrgres
Date: 2007-05-10 21:49:35
Message-ID: b9962380705101449m12288d16v641941abbd51c01d@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-es-ayuda

Este es otro pequeño detalle...

Cuando ejecutamos el comando ps -ef para mostrar los procesos y sus usuarios
en linux, aparece que postgres (que es el usuario de la version 8.0.4) tiene
privilegios sobre la version nueva del postgres 8.2.4.

Nosotros creamos una cuenta para ese nuevo postgres 8.2.4 pero no aparece
cuando ejecutamos el ps -ef, solo aparece ese usuario viejo postgres.

Gracias.


From: "Jaime Casanova" <systemguards(at)gmail(dot)com>
To: "Roberto Tortolero" <roberto(dot)tortolero(at)gmail(dot)com>
Cc: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Como convertir los SELECT que usan AS en otros manejadores a Postrgres
Date: 2007-05-11 03:54:47
Message-ID: c2d9e70e0705102054h73a8c595y38a9a52e7f57de69@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-es-ayuda

On 5/10/07, Roberto Tortolero <roberto(dot)tortolero(at)gmail(dot)com> wrote:
> Buenas, ya pude levantar los dos servicios postgresql en nuestro servidor,
> los dos se ejecutan y no hay conflictos entre ellos (que yo sepa), el
> detalle es que cuando se trata de accesar la version 8.2.4 del postgresql a
> traves del Sql Manager de EMS dice que no hay conexion o que ese host no
> existe.
>

que tiene esto que ver con el tema del thread?
mira, por favor, lo que causas en el archivo de la lista (dale a follow-ups):
http://archives.postgresql.org/pgsql-es-ayuda/2007-05/msg00280.php

o desde afuera verias esto
http://archives.postgresql.org/pgsql-es-ayuda/2007-05/threads.php#00280

--
Atentamente,
Jaime Casanova

"Programming today is a race between software engineers striving to
build bigger and better idiot-proof programs and the universe trying
to produce bigger and better idiots.
So far, the universe is winning."
Richard Cook


From: Gabriel Hermes Colina Zambra <hermeszambra(at)yahoo(dot)com>
To: Jaime Casanova <systemguards(at)gmail(dot)com>, Roberto Tortolero <roberto(dot)tortolero(at)gmail(dot)com>
Cc: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Como convertir los SELECT que usan AS en otros manejadores a Postrgres
Date: 2007-05-11 04:22:36
Message-ID: 639512.69131.qm@web63711.mail.re1.yahoo.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-es-ayuda


--- Jaime Casanova <systemguards(at)gmail(dot)com> escribió:
> que tiene esto que ver con el tema del thread?
> mira, por favor, lo que causas en el archivo de la
> lista (dale a follow-ups):
>
http://archives.postgresql.org/pgsql-es-ayuda/2007-05/msg00280.php
>
> o desde afuera verias esto
>
http://archives.postgresql.org/pgsql-es-ayuda/2007-05/threads.php#00280
>
> --
> Atentamente,
> Jaime Casanova
>
> "Programming today is a race between software
> engineers striving to
> build bigger and better idiot-proof programs and the
> universe trying
> to produce bigger and better idiots.
> So far, the universe is winning."
> Richard Cook
>
> ---------------------------(fin del
> mensaje)---------------------------
> TIP 4: No hagas 'kill -9' a postmaster
>
Sabes que es la primera vez que me pongo a pensar en
eso Jaime, en el efecto en el archivo de la lista,
justo antes de leer tu e-mail, pensaba que estaba
contestando a algo que se habia salido del asunto
original, algo como esto que termino en el uso de gui.

Como hacemos para contestar algo que hay en un thread
pero deveria generar otro, por cambiar de topico.

Creamos otro thread mencionando cual origina la
respuesta.? o como ?

Atte
Gabriel Hermes Colina Zambra

__________________________________________________
Correo Yahoo!
Espacio para todos tus mensajes, antivirus y antispam ¡gratis!
Regístrate ya - http://correo.espanol.yahoo.com/


From: "Jaime Casanova" <systemguards(at)gmail(dot)com>
To: "Orlando Ramirez" <orlan2_r(at)yahoo(dot)com>
Cc: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Como convertir los SELECT que usan AS en otros manejadores a Postrgres
Date: 2007-05-11 05:17:35
Message-ID: c2d9e70e0705102217l63c37184tb655af5d6c91f182@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-es-ayuda

On 5/10/07, Orlando Ramirez <orlan2_r(at)yahoo(dot)com> wrote:
>
> En Sybase (usando subsconsultas) la sentencia tiene esta forma:
>
> SELECT distinct(substring(column_id,1,4)) AS columna, (select
> column_description from tabla where column_id=columna) from tabla
> WHERE <condicion>
>
> Pero en Postgres cuando se hace esto el identificador columna definido con
> AS no es reconocido en la subconsulta (¿?).
>

que tal algo como:

select column_id, column_description
from (select substring(column_id from 1 for 4) as codigo
from tabla group by 1) as foo, ctbt010
where column_id = codigo ;

--
Atentamente,
Jaime Casanova

"Programming today is a race between software engineers striving to
build bigger and better idiot-proof programs and the universe trying
to produce bigger and better idiots.
So far, the universe is winning."
Richard Cook


From: Alvaro Herrera <alvherre(at)commandprompt(dot)com>
To: Orlando Ramirez <orlan2_r(at)yahoo(dot)com>
Cc: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Como convertir los SELECT que usan AS en otros manejadores a Postrgres
Date: 2007-05-11 13:52:55
Message-ID: 20070511135255.GA17314@alvh.no-ip.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-es-ayuda

Orlando Ramirez escribió:
> Estoy migrando una base de datos de Sybase a Postgres y en muchos de
> los SELECT se usan la sentencia AS. Para ilustrarlo supongamos que
> tenemos una tabla cuyas columnas son column_id y column_description.
> Sus filas son:
>
> column_id column_description
> 1111------------------description 1
> 111101---------------description 2
> 11110101------------description 3
> 1121------------------description 4
> 112101---------------description 5
> 11210101------------description 6
> 1131------------------description 7
> 113101---------------description 8
> 11310101------------description 9

(Que modelo tan horrible)

> Necesito mostrar (en filas no-repetidas) los 4 primeros caracteres del
> identificador de columna (column_id) y su respectiva descripcion
> (column_description) de las filas de esta tabla que cumplen una
> determinada condicion.

No entendi la descripcion ... puedes dar un ejemplo concreto? La
condicion y el resultado.

> Pero en Postgres cuando se hace esto el identificador columna definido
> con AS no es reconocido en la subconsulta (¿?).

Eso es correcto, porque una subconsulta en la lista de resultados no
tiene acceso a las columnas de la consulta exterior. (Me parece que lo
que desearias seria poner la subconsulta en el WHERE como una consulta
correlacionada, o quizas en el FROM).

--
Alvaro Herrera http://www.CommandPrompt.com/
PostgreSQL Replication, Consulting, Custom Development, 24x7 support