none
Consulta que no funciona corrrectamente RRS feed

  • Pregunta

  • Hola a todos, tengo una tabla 'Intervenciones' con dos campos; FechaInicio  y FechaFin  y necesito que cada vez que se crea una intervención se compruebe si la fecha actual (incluyendo la hora) no coincide con el intervalo entre Fecha Inicio y Fecha Fin, puesto que todas las intervenciones las hace un técnico y supuestamente mientras no haya terminado una no puede empezar la otra.No se si me he explicado bien , la idea es que no se solapen.

    Esta es mi consulta:

    IQueryable<intervenciones> inter = (from i in _db.intervenciones
    
                                                        from r in _db.recursos
                                                        where r.IdUsuario == _idun
                                                        where (i.FechaFinInter >= FechaFinInter && FechaFinInter > i.FechaIn)
                                                              ||
                                                              (i.FechaIn <= FechaIn && FechaIn < i.FechaFinInter)
                                                        select i);
    
    
                    if (inter.Count() > 0 && Convert.ToInt16(Solapar) == 0) return View("SolapeIntervencion");

    la tabla recursos guarda las IdIntervención e IdUsuario

    la fecha se guarda en formato  1997-06-18 00:00:00

    pero está dando problemas, a veces sin haber hecho ninguna intervención no permite guardar por que supuestamente va a solapar.

    ¿Alguie puede ver en que me estoy equivocando?

    Gracias de antemano, un saludo.


    • Editado Carlos787 miércoles, 20 de junio de 2012 7:54
    • Cambiado Eder Costa martes, 26 de junio de 2012 16:43 Cambiar de foro SQL Server (De:SQL Server)
    miércoles, 20 de junio de 2012 7:52

Todas las respuestas

  • Hola.

    Este foro es de SQL Server y la sentencia que nos pasas no. ¿Qué lenguaje empleas? Así podremos mover el hilo a un foro en el que puedas obtener una ayuda eficaz.


    Alberto López Grande
    SQL Server MVP
    Visita mi blog en http://qwalgrande.com
    Sígueme en twitter en http://twitter.com/qwalgrande

    miércoles, 20 de junio de 2012 8:02
  • Es asp.net MVC , tienes razón, voy a pasarlo al otro foro.

    Un saludo.

    miércoles, 20 de junio de 2012 8:04
  • qwalgrande: Eso es LINQ. ¿Podrías moverlo al foro de LINQ? Trataré de responderle.

    logo osoft
    Si he contestado tu pregunta, por favor marca mi post como respuesta.
    ...Y si mi post te ha servido, márcalo como útil smile

    miércoles, 20 de junio de 2012 8:05
  • Carlos787,

    Asumiento que la fecha de la intervención que estás registrando está guardada en FechaFinInter,FechaFinInter y que tienes un miembro IdUsuario en el objeto Intervencion, bastaría con lo siguiente:

    If (_db.Intervenciones.Any(i => i.IdUsuario = _idun && i.FechaFinInter > FechaIn) != null)
    {
       // ERROR: Hay una intervención que se solapa}
    else
    {
       // Ok, acá se puede continuar porque no hay solapamiento
    }




    logo osoft
    Si he contestado tu pregunta, por favor marca mi post como respuesta.
    ...Y si mi post te ha servido, márcalo como útil smile

    miércoles, 20 de junio de 2012 8:15
  • Muchas gracias por vuestra ayuda.

    Un saludo.

    domingo, 1 de julio de 2012 20:55