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

Consulta sql

Estas en el tema de Consulta sql en el foro de SQL Server en Foros del Web. Hola a todos tengo la siguiente consulta, Tengo una tabla con 3 campos ahi va Nombre tabla: zonas idciudad Nombre Padre 1 Santiago 0 2 ...
  #1 (permalink)  
Antiguo 17/02/2006, 15:03
Avatar de mauricio2004  
Fecha de Ingreso: marzo-2004
Mensajes: 264
Antigüedad: 20 años, 8 meses
Puntos: 0
Pregunta Consulta sql

Hola a todos tengo la siguiente consulta,

Tengo una tabla con 3 campos ahi va

Nombre tabla: zonas

idciudad Nombre Padre
1 Santiago 0
2 Iquique 0
3 Antofagasta 0
4 Santiago 1
5 Providencia 1
...
...
...

por ejemplo las zonas o ciudades principales tienen como campo padre 0, y comunas que pertenecen a esa zona o ciudad tienen el id del padre en el caso de providencia tiene 1 el id del padre Santiago.

Ahora quiero hacer una consulta que en un registro me muestre el nombre y el nombre del padre si lo tiene, pero no he podido realizar la consulta , aqui va lo que tengo hecho

SELECT idciudad, Nombre,
(SELECT Nombre
FROM zonas
WHERE idciudad = padre) AS ciudad,
FROM zonas

en la columna ciudad que la tengo como un alias me imprime null no me imprime nada y quiero que me imprima el nombre del padre que tenga

Si alguien me podria decir si es factible hacerlo y si es asi, como hacerlo

Saludos

Mauricio
  #2 (permalink)  
Antiguo 17/02/2006, 18:37
 
Fecha de Ingreso: noviembre-2005
Mensajes: 658
Antigüedad: 19 años
Puntos: 3
Cualquiera de estas querys te sirven

select distinct a.id,a.nombre as ciudad, Isnull(b.nombre,'Sin Padre') as nm_padre
from zonas a, zonas b
where a.padre *= b.id


select distinct a.id,a.nombre as ciudad, Isnull(b.nombre,'Sin Padre') as nm_padre
from zonas a left join zonas b on a.padre = b.id
  #3 (permalink)  
Antiguo 17/02/2006, 18:38
 
Fecha de Ingreso: noviembre-2005
Mensajes: 658
Antigüedad: 19 años
Puntos: 3
me falto cambiar los nombres de tus columnas... tu cambialas y veras que funciona

Suerte
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 13:43.