Re: Consulta compleja

From: Jose Luis Balle <joseluisballe(at)gmail(dot)com>
To: "Ivan Perales M(dot)" <ivan(dot)perales(at)gmail(dot)com>
Cc: Rafael Valenzuela <ravamo(at)gmail(dot)com>, Ruben Fitó <r(dot)fito(at)ubiquat(dot)com>, "pgsql-es-ayuda(at)postgresql(dot)org" <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: Consulta compleja
Date: 2013-01-17 23:43:13
Message-ID: CANv0ssvarcLxjcuijE_QvjnUSJP+BWaC4Q_vrG6+2A4hkpBmNA@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Tienes problemas con el diseño de tus tablas.
Como haces para que el la tx *345278*97889 no ingrese como tipo de producto
*3452?*
Es decir si el tipo de producto no es de longitud fija nunca sabes si estás
vinculando porque si o porque corresponde.
No se si me explico. Para tener dos tipos de valores en una misma columna
tendrían que estar separados por un token (#,.-=+ etc) o ser de longitud
fija.
De lo contrario la TX mencionada anteriormente va a entrar como tipo *3452*,
*345278*, *34527*, etc.

El 17 de enero de 2013 15:33, Ivan Perales M. <ivan(dot)perales(at)gmail(dot)com>escribió:

> Pudieras utilizar un query como este:
>
> SELECT tx.producto_id from tabla_productos_por_cliente cl left join
> tabla_tx tx on tx.producto_id like cl.tipo_producto || '%' where cl.cliente
> = 'pepito';
>
> Aunque no se que tantos registros vayas a manejar y que tanto performance
> impacte, intenta agregarle un indice a producto_id y verificalo con el
> EXPLAIN.
>
> Saludos
>
>
> 2013/1/17 Rafael Valenzuela <ravamo(at)gmail(dot)com>
>
>> Una pregunta muy tonta y con una etl vamos , puede que se pueda hacer con
>> sql o con procedimientos pero me da que va a ser muy engorroso.
>> El 17/01/2013 09:40, "Ruben Fitó" <r(dot)fito(at)ubiquat(dot)com> escribió:
>>
>> Una cosilla mas,
>>>
>>> los tipos de productos pueden ser:
>>>
>>> *12345 --> *producto* A: 12345 *00089
>>> *1234578 --> *producto* B: 1234578 *0258
>>>
>>> Con lo que usar expresiones regulares puede dar problemas.
>>>
>>> Saludos!!
>>>
>>>
>>> 2013/1/17 Ruben Fitó <r(dot)fito(at)ubiquat(dot)com>
>>>
>>>> Hola lista,
>>>>
>>>> Después de comerme el coco un buen rato he decidido consultaros ya que
>>>> no lo consigo:
>>>>
>>>> Tengo una tabla donde se almacenan las TX i uno de sus campos es
>>>> producto.
>>>>
>>>> *tabla_tx*
>>>>
>>>> *producto id * : código producto, los primeros dígitos(en negrita)
>>>> definen el tipo de producto.
>>>> xxxx
>>>> *12345*61132
>>>> *12345*1458
>>>> xxxx
>>>> *987653*234
>>>> *987653*111
>>>> xxxx
>>>>
>>>>
>>>> Por otro lado tengo otra tabla donde me dice los productos se pueden
>>>> vender para cada cliente.
>>>>
>>>> *tabla_productos_por_cliente*
>>>>
>>>> *cliente | tipo_producto*
>>>> xxx | xxx
>>>> pepito | *12345*
>>>> pepito | *987653*
>>>> xxx | xxx
>>>>
>>>> Lo que necesito es la lista de *productos_id* de *tabla_tx* que
>>>> correspondan al cliente "pepito".
>>>>
>>>> En teoria se deberian buscar los *productos_id* de *tabla_tx* que
>>>> empiecen por *tipo_producto* correspondientes al *cliente* deseado.
>>>>
>>>> Lo único que puedo incluir es que dos o mas clientes no comparten el
>>>> mismo *tipo_producto*. (De momento.. jeje)
>>>>
>>>> Muchas Gracias.
>>>>
>>>> Saludos!!
>>>>
>>>>
>>>> --
>>>> *Ruben Fitó *
>>>> Software Engineer
>>>> [image: Ubiquat Technologies, SL] r(dot)fito(at)ubiquat(dot)com<j(dot)catarineu(at)ubiquat(dot)com>
>>>>
>>>> www.ubiquat.com
>>>> Tota la informació continguda en aquest document i arxius adjunts és
>>>> CONFIDENCIAL protegida per llei de secret comercial. Si l'ha rebut per
>>>> error, si us plau elimini'l i posi's en contacte amb l'emissor.
>>>>
>>>> All information contained in this document and any attachments are
>>>> CONFIDENTIAL and protected under trade secret laws. If you receive this
>>>> message by mistake, please delete it and notify it immediately to the
>>>> sender.
>>>>
>>>
>>>
>>>
>>> --
>>> *Ruben Fitó *
>>> Software Engineer
>>> [image: Ubiquat Technologies, SL] r(dot)fito(at)ubiquat(dot)com<j(dot)catarineu(at)ubiquat(dot)com>
>>>
>>> www.ubiquat.com
>>> Tota la informació continguda en aquest document i arxius adjunts és
>>> CONFIDENCIAL protegida per llei de secret comercial. Si l'ha rebut per
>>> error, si us plau elimini'l i posi's en contacte amb l'emissor.
>>>
>>> All information contained in this document and any attachments are
>>> CONFIDENTIAL and protected under trade secret laws. If you receive this
>>> message by mistake, please delete it and notify it immediately to the
>>> sender.
>>>
>>
>
>
> --
> Lindolfo Iván Perales Mancinas
> Solo existen 10 tipos de personas en el mundo, las que saben binario y las
> que no.
>

--
*Life is what happens to you while you're busy making other plans.
*John Lennon
http://ar.linkedin.com/in/joseluisballe

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Jaime Casanova 2013-01-17 23:57:14 Re: Consulta compleja
Previous Message Ivan Perales M. 2013-01-17 18:33:08 Re: Consulta compleja