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

Problemas al Usar INNER JOIN

Estas en el tema de Problemas al Usar INNER JOIN en el foro de SQL Server en Foros del Web. Hola tengo un problema, estoy usando la base de datos NORTHWIND Y necesito mostrar la cantidad de empleados, la cantidad de territorios por cada región. ...
  #1 (permalink)  
Antiguo 15/11/2013, 21:42
 
Fecha de Ingreso: julio-2010
Mensajes: 191
Antigüedad: 13 años, 9 meses
Puntos: 2
Problemas al Usar INNER JOIN

Hola tengo un problema, estoy usando la base de datos NORTHWIND

Y necesito mostrar la cantidad de empleados, la cantidad de territorios por cada región.

Este es el resultado que necesito



el diagrama y campos son estos



Espero su ayuda
  #2 (permalink)  
Antiguo 16/11/2013, 06:36
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Problemas al Usar INNER JOIN

Perfecto... ¿Y cómo estás intentando la consulta? ¿A qué te refieres con "problemas al usar INNER JOIN?

Si no vemos lo que probaste, no hay mucho por donde entender cuál es exactamente el "problema" que se te presenta.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 16/11/2013, 08:11
 
Fecha de Ingreso: abril-2008
Mensajes: 64
Antigüedad: 16 años
Puntos: 2
Respuesta: Problemas al Usar INNER JOIN

Lo primero de todo totalmente de acuerdo con gnzsoloyo, sino eres mas explicito, poco te podran ayudar, yo por lo que e entendido seria algo asi:

Código SQL:
Ver original
  1. SELECT A.regionDescription, COUNT(B.territoryId), COUNT(C.EmployeeId)
  2. FROM REGION AS A INNER JOIN territories AS B ON A.regionId=B.regionId
  3. INNER JOIN Employeeterritories AS C ON B.TerritoryId=c.TerritoryId
  4. GROUP BY A.RegionId
[/PHP]

Nose si sera eso lo que dices, pero si planteas mejor tu problemas, seguro que te pueden ayudar mas facilmente.

Un saludo

Última edición por gnzsoloyo; 16/11/2013 a las 10:19 Razón: Mal etiquetado. SQL no es PHP.
  #4 (permalink)  
Antiguo 16/11/2013, 13:49
 
Fecha de Ingreso: julio-2010
Mensajes: 191
Antigüedad: 13 años, 9 meses
Puntos: 2
Respuesta: Problemas al Usar INNER JOIN

Tienen razón, hice este query, pero ambos COUNT() me devuelven la misma cantidad

Código SQL:
Ver original
  1. SELECT
  2.     RegionDescription,
  3.     COUNT(T.TerritoryID),
  4.     COUNT(ET.EmployeeID)
  5. FROM Employees AS E JOIN EmployeeTerritories AS ET ON E.EmployeeID=ET.EmployeeID
  6. JOIN Territories AS T ON T.TerritoryID=ET.TerritoryID
  7. JOIN Region AS R ON R.RegionID=T.RegionID
  8. GROUP BY RegionDescription

Última edición por gnzsoloyo; 16/11/2013 a las 14:36 Razón: Legibilidad
  #5 (permalink)  
Antiguo 18/11/2013, 01:04
 
Fecha de Ingreso: noviembre-2013
Mensajes: 1
Antigüedad: 10 años, 5 meses
Puntos: 0
Respuesta: Problemas al Usar INNER JOIN

La forma de como lo resolvería sin complicados GROUP BY
Código SQL:
Ver original
  1. SELECT DISTINCT
  2.     Region.RegionDescription
  3.     ,Terriorios_xRegion.nTerritorios
  4.     ,Empleados_xRegion.nEmpleados
  5. FROM
  6.     Region
  7.     INNER JOIN (
  8.         SELECT
  9.             Territories.RegionID
  10.             ,COUNT(Territories.TerritoryID) AS nTerritorios
  11.         FROM
  12.             Territories
  13.         GROUP BY
  14.             Territories.RegionID
  15.         ) Terriorios_xRegion
  16.         ON Terriorios_xRegion.RegionID = Region.RegionID
  17.     INNER JOIN (
  18.         SELECT
  19.             Territories.RegionID
  20.             ,COUNT(EmpleyeeTerritories.EmployeeID) AS nEmpleados
  21.         FROM
  22.             Territories
  23.             INNER JOIN EmpleyeeTerritories
  24.                 ON Territories.TerritoryID = EmpleyeeTerritories.TerritoryID
  25.         GROUP BY
  26.             Territories.RegionID
  27.         ) Empleados_xRegion
  28.         ON Empleados_xRegion.RegionID = Region
  29. ORDER BY
  30.     Region.RegionDescription

Etiquetas: join, usar
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 01:45.