RE: Como crear codigos compuestos

From: MIGUEL CANCHAS <mcanchas(at)tsr(dot)com(dot)pe>
To: "'pgsql-es-ayuda(at)postgresql(dot)org'" <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: RE: Como crear codigos compuestos
Date: 2007-08-20 13:47:30
Message-ID: 410117BB01F4D611B73A00010331DD2403B57F37@tsnt.tsr.com.pe
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Gracias por tu ayuda, me parece que es mas efectiva, ahora lo probare.

Y tambien gracias por tu solidaridad en estos momentos de dolor.
Ayer recien pude encontrar a mi amigo que vive en el lugar mismo del
epicentro(ya esta en lima), fallecio su madre y su sobrina, una tragedia.

Para no salirnos del caso, esa codificación la hacen para poder manejar
grupos de cliente, yo la implemente hace como 5 años atras(aun estaba en
pañales), ahora ya se que asi no se hacen las cosas, ademas era rapidisimo
en SQL del VFP , hacia sele MAX(VAL(subst(codigo, 2, 5)))+1 codigo from
mclientes where left(codigo, 1) = "A".

Pero bueno gracias por la sugerencia, me parece excelente.

Gracias a todos por los aportes, ya los estare molestando mas seguido

Atte
Miguel Canchas
LIMA - PERU(unido por el dolor)

-----Mensaje original-----
De: Gabriel Hermes Colina Zambra [mailto:hermeszambra(at)yahoo(dot)com]
Enviado el: Sábado, 18 de Agosto de 2007 02:56 p.m.
Para: MIGUEL CANCHAS; 'pgsql-es-ayuda(at)postgresql(dot)org'
Asunto: RE: [pgsql-es-ayuda] Como crear codigos compuestos

--- MIGUEL CANCHAS <mcanchas(at)tsr(dot)com(dot)pe> escribió:

> Ante todo gracias por las sugerencias.
>
> Explico :
> Los codigos compuestos son para poder asociar
> rapidamente al cliente, si por
> ejemplo:
>
> A006 me dice que el cliente empieza con A, y es
> Antonio meza cuadra,
>
> cuando buscan hacen referencia al A006, o dicen "
> Ah!! ese cliente es A006"
> o Antonio Meza Cuadra que cliente es ? es A006.
Te voy a dar una solucion muy valida, y probada,
funciona, pero para un caso que me deja muchas
interrogantes.

?????? Y como intercalaz entre tantos perez a un
perdomo en una guia telefonica, aca en mi pais esa
solucion seria fatal y eso que solo somos 3000000 de
habitantes, no justifiques una reverenda bobada, por
que te deja mal parado.

Igual con todo elabore esto.

Primero cree la tabla letracodigo

codigo varchar(4);
apellidos varchar(25);
nombres varchar(25);

select * from letracodigo me da esto;

codigo apellidos nombres
A001 ALANIS GERARDO
A002 AMESTEGUI PABLO
B001 BUENO ALEJANDRO
D001 DUARTE MANUEL
D002 DOMINGUEZ LAURA
P001 PEREZ GASTON
P002 PEREZ ANA
P003 PEREZ JUAN
P004 PERDOMO TOTO
P005 PERDOMO LEANDRO
P006 PEREZ ROJELIO

Y con esta consulta obtengo el ultimo valor que tiene
cada letra + 1

select substr(codigo,1,1) as
letra,max(substr(codigo,2,3))::integer + 1 as numero
from letracodigo
group by substr(codigo,1,1)

LETRA NUMERO
A 3
B 2
D 3
P 7

Bueno ahora el resto del trabajo te toca a ti.

Yo haria una funcion que pasando la letra me arroje el
codigo, uniendo la letra + el codigo con el formato en
00x, y si no la encuentra devuelva C001 con el valor
uno por defecto.

Puede que parezca una solucion fea, pero funciona bien
y es fea por que el origen conceptual de codificacion
es espantoso.

>
> Si lo pusiera correlativo diria que es el cliente
> "6",
>
> Gracias a todos .
>
> Solo manejamos clientes con este tipo de
> nomenclatura al igual en las rutas
> "T01", "T25"
Bueno la verdad que no tiene nada que ver una cosa con
otra.

> Miguel
>

Miguel espero que te sirva y un saludo solidario desde
Uruguay a ese pueblo hermano en estas horas.

Atte.
Gabriel Hermes Colina Zambra

> -----Mensaje original-----
> De: Julio Rivero [mailto:jcrmlima(at)gmail(dot)com]
> Enviado el: Sábado, 18 de Agosto de 2007 11:57 a.m.
> Para: Arturo Munive [pgsql-es-ayuda]
> CC: MIGUEL CANCHAS; pgsql-es-ayuda(at)postgresql(dot)org
> Asunto: Re: [pgsql-es-ayuda] Como crear codigos
> compuestos
>
>
> Ah!, claro, tienes que bloquear la tabla, ahora,
> porque la necesidad de
> códigos compuestos?, no puedes utilizar secuencias y
> te ahorras un huevo de
> cosas????
>
>
> On 8/18/07, Arturo Munive [pgsql-es-ayuda] <
> arturomunive(at)gmail(dot)com
> <mailto:arturomunive(at)gmail(dot)com> > wrote:
>
> Julio Rivero escribió:
> > Te falto: "Por favor"
> >
> > Puedes hacer un algoritmo que te extraiga la
> primera letra (obviamente
> > en una variable) de lo que estas ingresando o
> capturando, puedes
> > utilizar substr para obtener el primer caracter,
> luego hacer un select
> > a tu tabla con una condición, trayendo el último
> registro, algo así como:
> >
> > Select count(*)
> > From tabla
> > Where substr(campo,1,1) =
> 'primera_letra_extraida';
> >
> > Luego le sumas 1 y lo concatenas:
> > primera_letra_extraida||correlativo::text
> Bloquea las tablas para que no se repita el codigo
> (mmm opinion personal
> no me gusta ese tipo de codigos)
>
> --
> __ ___ _____ _ ___ ___ _ _ _
> _ _ ____
> / /\ | |_) | | | | | | |_) / / \ | |\/| | | | |
> |\ | | | \ \ / | |_
> /_/--\ |_| \ |_| \_\_/ |_| \ \_\_/ |_| | \_\_/
> |_| \| |_| \_\/ |_|__
>
>
>
>
>
>
> --
> Saludos
> Att,
> JR
> Movil: 98055573
>
>

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

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Mario Soto 2007-08-20 14:02:27 Re: Ayuda con Function Sql
Previous Message luis perruca 2007-08-20 08:38:22 SOS. He perdido una base de datos.