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

consulta basica

Estas en el tema de consulta basica en el foro de Mysql en Foros del Web. Buenas Quería preguntar algo básico ya que estoy aprendiendo sobre bases de datos, asi que probablemente sea una tonteria. Quiero hacer a una consulta de ...
  #1 (permalink)  
Antiguo 31/03/2015, 08:57
 
Fecha de Ingreso: octubre-2008
Mensajes: 68
Antigüedad: 16 años
Puntos: 0
consulta basica

Buenas
Quería preguntar algo básico ya que estoy aprendiendo sobre bases de datos, asi que probablemente sea una tonteria.
Quiero hacer a una consulta de una tabla que tiene las columnas de |Empleado|facturacion|mes |año|
Necesito obtener listado de empleados indicando la mayor facturación anual de ese empleado, con su mes y año.
He pensado a hacer esto:
Código:
select empleado,max(facturacion),mes,año from tabla group by empleado,año
y esta todo bien pero me sale siempre enero, por que puede ser esto?
gracias
Un saludo
  #2 (permalink)  
Antiguo 31/03/2015, 09:06
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 18 años, 3 meses
Puntos: 774
Respuesta: consulta basica

Código SQL:
Ver original
  1. CREATE TABLE #temp
  2. (
  3. id INT,
  4. facturacion INT,
  5. mes INT,
  6. [YEAR] INT
  7. )
  8.  
  9. INSERT INTO #temp VALUES (1,10,1,2012)
  10. INSERT INTO #temp VALUES (1,20,3,2012)
  11. INSERT INTO #temp VALUES (1,50,6,2012)
  12. INSERT INTO #temp VALUES (1,30,9,2012)
  13.  
  14. INSERT INTO #temp VALUES (2,10,9,2012)
  15. INSERT INTO #temp VALUES (2,20,10,2012)
  16. INSERT INTO #temp VALUES (2,60,11,2012)
  17.  
  18. --Aqui sacas el max, pero sin saber el mes
  19. SELECT
  20. id,MAX(facturacion),[YEAR] FROM #temp GROUP BY [YEAR],id
  21.  
  22.  
  23. --Si ocupas saber el mes, entonces puedes hacer algo como esto
  24. SELECT t1.* FROM #temp AS t1
  25. LEFT JOIN (SELECT
  26. id,MAX(facturacion) fact,[YEAR] FROM #temp GROUP BY [YEAR],id) AS t2 ON (t1.id=t2.id AND t1.facturacion=t2.fact AND t1.[YEAR]=t2.[YEAR])
  27. WHERE t2.id IS NOT NULL
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #3 (permalink)  
Antiguo 03/04/2015, 09:52
 
Fecha de Ingreso: octubre-2008
Mensajes: 68
Antigüedad: 16 años
Puntos: 0
Respuesta: consulta basica

probando lo que me comentas me dice que no puede reabrir t1
por que puede ser esto?
  #4 (permalink)  
Antiguo 06/04/2015, 08:22
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 18 años, 3 meses
Puntos: 774
Respuesta: consulta basica

cual es el mensaje de error completo???
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #5 (permalink)  
Antiguo 06/04/2015, 09:04
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: consulta basica

Hay que tener cuidado con la sintaxis del script. Ese continente cosas que no son compatibles con MySQL, sino que son propias de SQL Server.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: select, tabla
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 10:17.