novato en procedimientos almacenados

12/02/2004 - 12:45 por josema | Informe spam
Hola a todos

Tengo este caso con 3 tablas:

people People_Department Department
-peopleID -People -DepartmentID
-NamePeople -Department -NameDepartment

Y es que cada persona puede trabajar en varios
departamentos y un departamento puede tener una o mas
personas

Me gustaria saber como podria (usando un procedimiento
almacenado) conseguir una lista de esta
forma...
Name Department
Peter Financial
Peter Computers
John Human Resources
..

Agradeceria cualquier tipo de informacion, urls,
ejemplos...
Gracias por adelantado...
Josema.

Preguntas similare

Leer las respuestas

#1 Naimps
12/02/2004 - 12:53 | Informe spam
On Thu, 12 Feb 2004 03:45:02 -0800, josema wrote:

Hola a todos

Tengo este caso con 3 tablas:

people People_Department Department
-peopleID -People -DepartmentID
-NamePeople -Department -NameDepartment

Y es que cada persona puede trabajar en varios
departamentos y un departamento puede tener una o mas
personas

Me gustaria saber como podria (usando un procedimiento
almacenado) conseguir una lista de esta
forma...
Name Department
Peter Financial
Peter Computers
John Human Resources
..

Agradeceria cualquier tipo de informacion, urls,
ejemplos...
Gracias por adelantado...
Josema.



¿Qué tal así?

select NamePeople, NameDepartment
from people
inner join People_Department on peopleID = People
inner join Department on DepartmentID = Department
order by 1, 2
Respuesta Responder a este mensaje
#2 Salvador Ramos
12/02/2004 - 12:58 | Informe spam
Hola:

Esta es una típica relación N:M donde tienes que unir las tres tablas para
obtener dicha información. Te paso una solución:

SELECT NamePeople, NameDepartment
FROM people inner join people_department on people = peopleid
inner join department on department = departmentid


Un saludo
Salvador Ramos
Murcia - España

No puedes conseguir software rápidamente disminuyendo su calidad.
En cambio, si que lo consigues aumentando la calidad.

www.helpdna.net (información sobre Windows DNA, SQL Server, .NET, ...)


Microsoft MVP SQL Server
MCP SQL Server
PASS Spanish Group (www.sqlpass.org)


"josema" escribió en el mensaje
news:e9e301c3f15d$a69d6010$
Hola a todos

Tengo este caso con 3 tablas:

people People_Department Department
-peopleID -People -DepartmentID
-NamePeople -Department -NameDepartment

Y es que cada persona puede trabajar en varios
departamentos y un departamento puede tener una o mas
personas

Me gustaria saber como podria (usando un procedimiento
almacenado) conseguir una lista de esta
forma...
Name Department
Peter Financial
Peter Computers
John Human Resources
..

Agradeceria cualquier tipo de informacion, urls,
ejemplos...
Gracias por adelantado...
Josema.
Respuesta Responder a este mensaje
#3 Josema
12/02/2004 - 13:38 | Informe spam
lo inclui y me he dado cuenta que no es exactamente lo q
queria preguntar..., mi caso no lo explique con claridad

people People_Department Department
-peopleID -People -DepartmentID
-NamePeople -Department -NameDepartment
-NacionPeople

el caso es que existe otra tabla, por ejemplo
nacionalidad..

nacionality
-nacionID
-namenacion

y mi procedimiento almacenado es de esta forma...

select NamePeople, NameDepartment, namenacion from people
inner join nacionality on Nacion_People=nacionID
inner join People_Department on peopleID = People
inner join Department on DepartmentID = Department
order by 1, 2

Y lo que ocurre es que solo me da como resultado una
tupla, y no se como solucionarlo...

Muchas gracias por tan pronta respuesta...
Josema.

On Thu, 12 Feb 2004 03:45:02 -0800, josema wrote:

Hola a todos

Tengo este caso con 3 tablas:

people People_Department Department
-peopleID -People -DepartmentID
-NamePeople -Department -




NameDepartment

Y es que cada persona puede trabajar en varios
departamentos y un departamento puede tener una o mas
personas

Me gustaria saber como podria (usando un procedimiento
almacenado) conseguir una lista de esta
forma...
Name Department
Peter Financial
Peter Computers
John Human Resources
..

Agradeceria cualquier tipo de informacion, urls,
ejemplos...
Gracias por adelantado...
Josema.



¿Qué tal así?

select NamePeople, NameDepartment
from people
inner join People_Department on peopleID = People
inner join Department on DepartmentID = Department
order by 1, 2
.

Respuesta Responder a este mensaje
#4 Naimps
12/02/2004 - 13:49 | Informe spam
On Thu, 12 Feb 2004 04:38:32 -0800, Josema wrote:

lo inclui y me he dado cuenta que no es exactamente lo q
queria preguntar..., mi caso no lo explique con claridad

people People_Department Department
-peopleID -People -DepartmentID
-NamePeople -Department -NameDepartment
-NacionPeople

el caso es que existe otra tabla, por ejemplo
nacionalidad..

nacionality
-nacionID
-namenacion

y mi procedimiento almacenado es de esta forma...

select NamePeople, NameDepartment, namenacion
from people
inner join nacionality on Nacion_People=nacionID
inner join People_Department on peopleID = People
inner join Department on DepartmentID = Department
order by 1, 2

Y lo que ocurre es que solo me da como resultado una
tupla, y no se como solucionarlo...

Muchas gracias por tan pronta respuesta...
Josema.




Me he perdido.

Tu consulta debe devolver tres columnas:
- Nombre de la persona,
- "Departamento",
- Nación.

¿y dices que sólo te devuelve dos columnas? ¿Cuales?
Respuesta Responder a este mensaje
#5 Josema
12/02/2004 - 14:02 | Informe spam
Me devuelve todas las columnas...

El problema es que solo me devuelve un resultado (una
fila)
en vez de devolver:

jose contabilidad españa
jose informatica españa
jose recursos H. españa


devuelve el primero que encuentra

jose contabilidad españa

Josema...

On Thu, 12 Feb 2004 04:38:32 -0800, Josema wrote:

lo inclui y me he dado cuenta que no es exactamente lo




q
queria preguntar..., mi caso no lo explique con




claridad

people People_Department Department
-peopleID -People -DepartmentID
-NamePeople -Department -NameDepartment
-NacionPeople

el caso es que existe otra tabla, por ejemplo
nacionalidad..

nacionality
-nacionID
-namenacion

y mi procedimiento almacenado es de esta forma...

select NamePeople, NameDepartment, namenacion
from people
inner join nacionality on Nacion_People=nacionID
inner join People_Department on peopleID = People
inner join Department on DepartmentID = Department
order by 1, 2

Y lo que ocurre es que solo me da como resultado una
tupla, y no se como solucionarlo...

Muchas gracias por tan pronta respuesta...
Josema.




Me he perdido.

Tu consulta debe devolver tres columnas:
- Nombre de la persona,
- "Departamento",
- Nación.

¿y dices que sólo te devuelve dos columnas? ¿Cuales?
.

Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida