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

Consulta Complicada

Estas en el tema de Consulta Complicada en el foro de SQL Server en Foros del Web. Buenas Tardes: Esta vez vengo con una consulta complicada de hacer en la menor cantidad de vistas posibles: Les paso a explicar: Tengo 3 tablas: ...
  #1 (permalink)  
Antiguo 17/09/2010, 07:04
Avatar de mauro_bernal_rios  
Fecha de Ingreso: abril-2008
Ubicación: Mendoza
Mensajes: 88
Antigüedad: 16 años
Puntos: 2
Consulta Complicada

Buenas Tardes:
Esta vez vengo con una consulta complicada de hacer en la menor cantidad de vistas posibles:

Les paso a explicar:
Tengo 3 tablas:
  • Vendedores: (cada vendedor pertenece a un grupo)
  • Grupos:
  • y Ventas:
Vendedores:
ven_cod ven_desc ven_grupo
1 JUAN A
2 ANA A
3 DIEGO B
4 LAURA B
5 SANTIAGO B
6 CARLOS C

Grupos

Gru_Cod Gru_Des
A ALFA
B BETA
G GAMA

Ventas:
Ventas
Vent_Cod Vend_Cod
1 1
2 1
3 1
4 2
5 2
6 3


Y quiero llegar a esto:

Grupo Total_en_Grupo Ventas_Grupo Eficiencia
ALFA 2 5 2.5
BETA 3 1 0.33
GAMA 1 0 0

=EFICIENCIA: Ventas_Grupo / Total en Grupo

Como lo puedo hacer todo en 1 vista, o en 2...
__________________
Mauro Bernal
Sistemas y Web
http://maurobernal.com.ar
[email protected]
  #2 (permalink)  
Antiguo 17/09/2010, 14:03
Avatar de flaviovich  
Fecha de Ingreso: agosto-2005
Ubicación: Lima, Peru
Mensajes: 2.951
Antigüedad: 18 años, 8 meses
Puntos: 39
Respuesta: Consulta Complicada

El truco primero es hacerlo de forma manual, y claro que se necesita un poco de imaginacion.
Código SQL:
Ver original
  1. SELECT *, ROUND(Ventas_Grupo/(Total_en_Grupo*1.0),2) Eficiencia
  2. FROM (
  3.     SELECT G.Gru_Des Grupo, COUNT(DISTINCT VE.ven_cod) Total_en_Grupo, COUNT(V.Vend_Cod) Ventas_Grupo
  4.     FROM Ventas V
  5.     FULL JOIN Vendedores VE ON V.Vend_Cod = VE.ven_cod
  6.     INNER JOIN Grupos G ON VE.ven_grupo = G.Gru_Cod
  7.     GROUP BY G.Gru_Des
  8. ) T
__________________
No repitamos temas, usemos el Motor de busquedas
Plantea bien tu problema: Ayúdanos a ayudarte.
  #3 (permalink)  
Antiguo 17/09/2010, 17:52
Avatar de mauro_bernal_rios  
Fecha de Ingreso: abril-2008
Ubicación: Mendoza
Mensajes: 88
Antigüedad: 16 años
Puntos: 2
De acuerdo Respuesta: Consulta Complicada


Apenas pueda la pruebo... !!!
Pero no creí que se pudiese hacer en una sola consulta...

Tengo mucho más para seguir aprendiendo...
__________________
Mauro Bernal
Sistemas y Web
http://maurobernal.com.ar
[email protected]
  #4 (permalink)  
Antiguo 20/09/2010, 06:34
Avatar de mauro_bernal_rios  
Fecha de Ingreso: abril-2008
Ubicación: Mendoza
Mensajes: 88
Antigüedad: 16 años
Puntos: 2
Respuesta: Consulta Complicada

Código SQL:
Ver original
  1. SELECT *, ROUND(Ventas_Grupo/(Total_en_Grupo*1.0),2) Eficiencia
  2. FROM (
  3.     SELECT G.Gru_Des Grupo, COUNT(DISTINCT VE.ven_cod) Total_en_Grupo, COUNT(V.Vend_Cod) Ventas_Grupo
  4.     FROM Ventas V
  5.     FULL JOIN Vendedores VE ON V.Vend_Cod = VE.ven_cod
  6.     INNER JOIN Grupos G ON VE.ven_grupo = G.Gru_Cod
  7.     GROUP BY G.Gru_Des
  8. ) T
[/QUOTE]

Pregunta: (Porque ahora lo estoy transcribiendo a las tablas reales de mi base.)

Al final dice T. Que representa o significa esa T?
__________________
Mauro Bernal
Sistemas y Web
http://maurobernal.com.ar
[email protected]
  #5 (permalink)  
Antiguo 20/09/2010, 06:49
Avatar de mauro_bernal_rios  
Fecha de Ingreso: abril-2008
Ubicación: Mendoza
Mensajes: 88
Antigüedad: 16 años
Puntos: 2
Respuesta: Consulta Complicada

flaviovich Funciona Perfecto... Ahora estoy dandole unos retoques pero funciona muy bien y en una sola consulta...!!!
__________________
Mauro Bernal
Sistemas y Web
http://maurobernal.com.ar
[email protected]
  #6 (permalink)  
Antiguo 20/09/2010, 09:06
Avatar de flaviovich  
Fecha de Ingreso: agosto-2005
Ubicación: Lima, Peru
Mensajes: 2.951
Antigüedad: 18 años, 8 meses
Puntos: 39
Respuesta: Consulta Complicada

T es el alias, se usa en subconsultas, es como poner un nombre a una tabla.
__________________
No repitamos temas, usemos el Motor de busquedas
Plantea bien tu problema: Ayúdanos a ayudarte.
  #7 (permalink)  
Antiguo 20/09/2010, 12:38
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: Consulta Complicada

NO y estoy 100% seguro de que si lee su ayuda en linea le entendera mejor
__________________
MCTS Isaias Islas

Etiquetas: Ninguno
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 12:11.