From: | Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org> |
---|---|
To: | Linos <info(at)linos(dot)es> |
Cc: | Lista PostgreSql <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | Re: Consulta diseño |
Date: | 2009-04-15 15:54:47 |
Message-ID: | 20090415155447.GD7709@alvh.no-ip.org |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
Linos escribió:
> Cuando quiero hacer una consultar a los albaranes de salida donde muestre el
> nombre del cliente tengo que hacer o:
>
> SELECT cab.numero_albaran,
> CASE
> WHEN tipo_cliente = 'CLIENTE' THEN cli.nombre
> WHEN tipo_cliente = 'CLIENTE EMPRESA' THEN cli_emp.nombre
> WHEN tipo_cliente = 'CLIENTE GRUPO' THEN cli_grp.nombre
> ELSE NULL
> FROM albaran_salida_cabecera AS cab
> LEFT JOIN cliente AS cli ON cli.id_cliente = cab.id_cliente
> LEFT JOIN cliente_empresa AS cli_emp ON cli_emp.id_cliente = cab.id_cliente
> LEFT JOIN empresa_grupo AS cli_grp ON cli_grp.id_cliente = cab.id_cliente;
Efectivamente parece que necesitara un poco más de normalización.
Creo que deberías tener una única tabla de "clientes", que llevara el
nombre y otros datos comunes; y el resto de los datos podrían ir en una
tabla diferente con columnas para los datos que son únicos a cada tipo.
--
Alvaro Herrera Valdivia, Chile ICBM: S 39º 48' 55.3", W 73º 15' 24.7"
"Porque francamente, si para saber manejarse a uno mismo hubiera que
rendir examen... ¿Quién es el machito que tendría carnet?" (Mafalda)
From | Date | Subject | |
---|---|---|---|
Next Message | Jaime Casanova | 2009-04-15 16:00:24 | Re: traducciones (era Re: Consulta sobre entidades) |
Previous Message | Alvaro Herrera | 2009-04-15 15:51:35 | traducciones (era Re: Consulta sobre entidades) |