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)
--
TIP 1: para suscribirte y desuscribirte, visita 
http://archives.postgresql.org/pgsql-es-ayuda

Responder a