Estoy teniendo algunas dificultades para la escritura de una consulta hql que va a buscar una mesa para todas las filas cuando se cumplen ciertos criterios, pero yo sólo quiero volver a la fila con el max fecha.

Por ejemplo la cláusula where de la consulta sería algo como:

columna1 = input1 y columna2 = entrada2 y date_column < date_input

Esto podría devolver varias filas con diferentes fechas, pero yo sólo estoy interesado en el con la fecha más reciente. También tengo que devolver la totalidad de la fila.

Ahora estoy a la ejecución de la consulta con los criterios anteriores se ordenó descendente por fecha y luego ir a por el primer elemento de C#. Me gustaría tener una consulta hql o iCriteria solución que se puede hacer esto en un solo paso, si es posible.

InformationsquelleAutor zaq | 2011-11-30

1 Comentario

  1. 4

    Usted sólo tiene que utilizar una subconsulta. Seleccione el max de la fecha de la calificación filas y, a continuación, seleccione todos los registros que coinciden con el máximo de la fecha. Mi HQL es un poco oxidado, pero usted consigue la idea.

    from TableA a 
    where a.Date in (
        select max(b.Date) 
        from TableA b 
        where b.Something="You get the idea"
    )

    Subconsultas, Función De Agregado

    • Este es agarrar todas las filas de la Tabla que tienen una fecha igual a la fecha seleccionada por la sub-consulta, por lo que el donde los criterios en la sub-consulta no se aplican a la consulta principal.
    • Yo estaba asumiendo que las fechas eran únicas. Por qué no simplemente aplicar la where criterios tanto en la consulta principal y la subconsulta?
    • Ah, por supuesto. Que tiene sentido. Gracias!

Dejar respuesta

Please enter your comment!
Please enter your name here