Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

ayuda con una consulta

Estas en el tema de ayuda con una consulta en el foro de Bases de Datos General en Foros del Web. tengo estas tablas y esta consulta: contratos (tiene mas campos, pongo solo los interesantes) ------- id: integer (clave primaria) nif: string numeroCuenta: string (puede ser ...
  #1 (permalink)  
Antiguo 31/10/2007, 04:19
 
Fecha de Ingreso: febrero-2007
Mensajes: 69
Antigüedad: 17 años, 9 meses
Puntos: 0
ayuda con una consulta

tengo estas tablas y esta consulta:

contratos (tiene mas campos, pongo solo los interesantes)
-------
id: integer (clave primaria)
nif: string
numeroCuenta: string (puede ser null)

clientes (tiene mas campos, pongo solo los interesantes)
------
nif: string (clave primaria)
nombre: string
apellidos: string

select clientes.nif,clientes.nombre,clientes.apellidos,co ntratos.numeroCuenta
from clientes inner join contratos on clientes.nif=contratos.nif

y el resultado es:

Código:
nif       nombre  apellidos         numeroCuenta
------------------------------------------------------------
00000000a   yo       yo 
00000000a   yo       yo         0000-0000-00-0000000000
00000000b   tu       tu 
00000000c   el       el         0000-0000-00-0000000000
00000000c   el       el
como puedo hacer en el caso de numeroCuenta es y no es null, no me salgan repetidos y quede asi:

Código:
nif       nombre  apellidos         numeroCuenta
------------------------------------------------------------
00000000a   yo       yo         0000-0000-00-0000000000
00000000b   tu       tu 
00000000c   el       el         0000-0000-00-0000000000

Última edición por juancete; 31/10/2007 a las 09:34
  #2 (permalink)  
Antiguo 31/10/2007, 05:43
 
Fecha de Ingreso: febrero-2007
Mensajes: 1.292
Antigüedad: 17 años, 9 meses
Puntos: 13
Re: ayuda con una consulta

Buenas, el problema es que el modelo de las tablas esta mal planteado.
Deberías replantearlo. Si no puedes hacerlo, muestra al menos las claves primarias de las tablas y miramos como lo hacemos.

Un saludo
  #3 (permalink)  
Antiguo 31/10/2007, 05:50
 
Fecha de Ingreso: febrero-2007
Mensajes: 69
Antigüedad: 17 años, 9 meses
Puntos: 0
Re: ayuda con una consulta

en ambas tablas es el nif

encontre esta posible solucion:

SELECT clientes.nif, clientes.nombre, clientes.apellidos, MAX(contratos.numeroCuenta)
FROM clientes inner join contratos on clientes.nif=contratos.nif
GROUP BY clientes.nif,clientes.nombre,clientes.apellidos
  #4 (permalink)  
Antiguo 31/10/2007, 05:57
 
Fecha de Ingreso: febrero-2007
Mensajes: 1.292
Antigüedad: 17 años, 9 meses
Puntos: 13
Re: ayuda con una consulta

Primero, nif no puede ser la clave primaria de la tabla contratos, porque esta repetida!!!

Para este caso en concreto, esa es una posible solución, pero que pasa si un nif tiene 2 numeros de cuentas distintos, solo te sacara el mayor (comparando strings).

Un saludo
  #5 (permalink)  
Antiguo 31/10/2007, 09:36
 
Fecha de Ingreso: febrero-2007
Mensajes: 69
Antigüedad: 17 años, 9 meses
Puntos: 0
Re: ayuda con una consulta

mil perdones me confundi con la clave primaria, tienes razon el nif no puede ser, la C.P. es un ID que toma valores enteros.

no habia caido en eso, que un cliente puede tener o no un numero de cuenta pero este numero de cuenta puede ser distinto segun el contrato. entonces tendre que mostrar repetidos, no queda otra


Código:
nif       nombre  apellidos         numeroCuenta
------------------------------------------------------------
00000000a   yo       yo 
00000000a   yo       yo         0000-0000-00-0000000000
00000000b   tu       tu 
00000000c   el       el         0000-0000-00-0000000000
00000000c   el       el
00000000c   el       el         3300-0550-00-0009900022
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:15.