![]() |
![]() |
![]() |
![]() |
![]() |
FTP | ![]() |
![]() |
CCD | ![]() |
![]() |
Buscar | ![]() |
![]() |
Trucos | ![]() |
![]() |
Trabajo | ![]() |
![]() |
Foros | ![]() |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
![]() |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
![]() Gracias por responderme , la verdad, es que en Mysql no se puede usar el frist o last ó por lo menos a mi me da error igual es quehe ehcho alguna cagadilla por ahí, pero tu consulta e dio una idea queme llevo a encontrar la solución.
Solución: Código:
SELECT puertos.tag,contadores.valor,max(fecha)as fecha FROM CONTADORES,PUERTOS WHERE DISPOSITIVO='Contador' and CONTADORES.NUMPUERTO=PUERTOS.NUMPUERTO AND CONTADORES.IDEQUIPO=PUERTOS.IDEQUIPO AND (FECHA>='2007-05-14 00:00:00' AND FECHA<'2007-05-15 00:00:00') GROUP BY TAG HAVING max(fecha)< '2007-05-15 00:00:00' ORDER BY tag asc Probaré a sacar la anterior poniendo las fechas con parámetros . Muchas gracias y buen día. ![]() |
#2
|
||||
|
||||
Realmente el problema no creo que sea del first ni del last, sino que no incluyes los campos que no tengan función de agrupado en el group by
Esta era tu consulta inicial. Seguramente te dará error porque haces un group by y no hay funciones de agrupado ( first, last, sum, count, ...). Además, todos los campos que pongas que no tengan función, deberán estar en el group by. Saludos
__________________
Cuando los grillos cantan, es que es de noche - viejo proverbio chino - |
#3
|
|||
|
|||
trabada con consulta en mysql.-. solución
Cita:
|
#4
|
|||
|
|||
Sigo trabada en funcion
La verdad es que poniendo max(contadores.valor) ó sin poner el max no me sale el resultado del todo bien , lo que yo pretendo es que me salga el valor correspondiente a la fecha resultante de la consulta , si pongo el max me sale siempre la máxima y no tiene porque corresponder a esa fecha.
Si lo hago como tu dices, poniendo todos los campos que no tiene función en el group by, es decir, en este caso sería el campo valor, me aparecerán todos los valores de ese contador entre las 2 fecha indicadas y no pretendo eso, sino , que me salga sólo un resultado por cada contador, con su valor correspondiente para la última fecha del día anterior. Me haría falta algo como tu dices el first ó el last, pero cuando lo pongo en la consulta tal que así: Código:
SELECT puertos.tag,first(contadores.valor),max(fecha)as mfecha FROM CONTADORES,PUERTOS WHERE DISPOSITIVO='Contador' and CONTADORES.NUMPUERTO=PUERTOS.NUMPUERTO AND CONTADORES.IDEQUIPO=PUERTOS.IDEQUIPO AND (FECHA>='2007-05-13 00:00:00' AND FECHA<'2007-05-14 00:00:00') GROUP BY TAG HAVING max(fecha)< '2007-05-14 00:00:00' ORDER BY tag asc,FECHA DESC Plissssssss si se te ocurre algo más comantamelo igual es que no te he entendido lo que me intentas explicar, yo seguiré estrujandome el coco. Gracias por tu apoyo y ayuda... |
#5
|
||||
|
||||
En la respuesta nº 2 tienes la solución escrita de dos maneras diferentes.
Saludos Ah, pero no mezcles el orden . Con DESC, first, sin DESC, last.
__________________
Cuando los grillos cantan, es que es de noche - viejo proverbio chino - |
#6
|
|||
|
|||
![]() Gracias por todo, pero con Mysql no puedo utilizar el first ni el last.
Seguiré investigando |
![]() |
|
|
![]() |
||||
Tema | Autor | Foro | Respuestas | Último mensaje |
realizar consulta mysql | fernando1973 | SQL | 4 | 03-05-2007 14:18:15 |
duda con una consulta LIKE en MySQL | enecumene | MySQL | 6 | 06-02-2007 21:06:46 |
Consulta dificil en mysql y sql | Arturo | SQL | 1 | 08-11-2006 13:39:41 |
Consulta Like Mysql '%'+ :parametro + '%' | CarlaOnti | MySQL | 3 | 30-01-2006 12:46:13 |
consulta a mysql | jfontane | PHP | 2 | 10-06-2003 19:11:57 |
![]() |
|