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

Consulta para fechas

Estas en el tema de Consulta para fechas en el foro de Programación General en Foros del Web. Hola a todos! Tengo una aplicación en C# y la base de datos la estoy manejando en sql server 2005. Estoy nuevamente por aquí con ...
  #1 (permalink)  
Antiguo 10/08/2011, 08:41
 
Fecha de Ingreso: septiembre-2010
Mensajes: 26
Antigüedad: 14 años, 2 meses
Puntos: 0
Consulta para fechas

Hola a todos!
Tengo una aplicación en C# y la base de datos la estoy manejando en sql server 2005.
Estoy nuevamente por aquí con la siguiente pregunta
tengo dos tablas una que se llama programaciones que es la tabla principal y la otra se llama DlleFechas que es la detalle.
el código de programaciones es autonúmerico. Las fechas que se van guardando en la DlleFechas se guardan con ese codigo, pero varias es decir:
tengo algo así

Cod_Programaciones
1
2
3
.......cada codigo es un contrato, en el que pueden haber varias fechas.
entonces en la tabla Dlle me va a guardar algo así:

Cod_Programaciones Fecha Inicial Fecha Final
1 05/08/2011 06/08/2011
1 17/08/2011 19/08/2011
1 24/09/2011 25//9/2011
2 09/08/2011 10/ 08/2011
2 17/08/2011 18/08/2011

Entonces el reporte que necesito generar debe sacar sólo la fecha inicial y la final por contrato es decir
del contrato 1 me debe sacar 5/08/2011 y 25/09/2011
del 2 9/08/2011 y 18/08/2011
Para Generarlo utilizo algunos parámetros de entrada. el procedimiento que tengo actualmente este no me sirve porqué me trae todas las fechas del contrato.
espero me puedan ayudar con esto
De antemano muchisimas gracias

Este es el SP que tengo:
USE [Universidad89]
GO
/****** Objeto: StoredProcedure [dbo].[SP_MostrarContratos] Fecha de la secuencia de comandos: 08/10/2011 09:38:19 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[SP_MostrarContratos]
@Plan_Trabajo varchar(15),
@Fecha_Inicio Datetime,
@Fecha_Fin Datetime,
@Codigo_seccional int


AS
BEGIN TRY
BEGIN TRAN
SELECT Programacion.Codigo_Fecha, Programacion.Cedula_empleado AS Cédula, Empleados.Nombres, Empleados.Primer_Apellido AS [1er Apellido],
Empleados.Segundo_Apellido AS [2do Apellido], Programacion.Codigo_seccional, Seccional.Nombre_seccional AS Seccional,
Seccional_CentroCostos.Codigo_CentroCostos AS [Centro Costos], Detalle_Viaje.Codigo_programa AS [Cod.Programa],
Detalle_Viaje.Codigo_asignatura AS [Cod.Asignatura], Asignatura.Nombre_asignatura AS Asignatura, Fecha_Clase.Fecha_Inicial AS [Fecha Inicio],
Fecha_Clase.Fecha_Final AS [Fecha Fin], Programacion.Horas_Presenciales AS [H.Presenciales],
Programacion.HorasAtencion AS [H.Atención Estudiantes], Programacion.TotalHoras AS [Total Horas],
Programacion.[Fundamento_Legal] AS [Fundamento Legal]
FROM Programacion INNER JOIN
Empleados ON Programacion.Cedula_empleado = Empleados.Cedula_empleado INNER JOIN
Seccional ON Programacion.Codigo_seccional = Seccional.Codigo_seccional INNER JOIN
Seccional_CentroCostos ON Seccional.Codigo_seccional = Seccional_CentroCostos.Codigo_seccional INNER JOIN
Programa ON Seccional.Codigo_seccional = Programa.Codigo_seccional INNER JOIN
Detalle_Viaje ON Programacion.Codigo_Fecha = Detalle_Viaje.Codigo_Fecha AND
Programa.Codigo_programa = Detalle_Viaje.Codigo_programa INNER JOIN
Asignatura ON Detalle_Viaje.Codigo_asignatura = Asignatura.Codigo_asignatura INNER JOIN
Fecha_Clase ON Programacion.Codigo_Fecha = Fecha_Clase.Codigo_Fecha

WHERE (Plan_Trabajo = @Plan_Trabajo) and (Fecha_Inicial between @Fecha_Inicio and @Fecha_Fin) and (Programacion.Codigo_seccional = @Codigo_seccional)
ORDER BY Fecha_Clase.Fecha_Inicial ASC, Fecha_Clase.Fecha_Final DESC


COMMIT
END TRY
BEGIN CATCH
ROLLBACK
PRINT ERROR_STATE()
END CATCH
  #2 (permalink)  
Antiguo 11/08/2011, 16:21
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 para fechas

Código SQL:
Ver original
  1. CREATE TABLE #temp(
  2. cod_programaciones INT,
  3. fecha_inicial datetime,
  4. fecha_final datetime
  5. )
  6.  
  7. INSERT INTO #temp VALUES (1,'08/05/2011','08/06/2011')
  8. INSERT INTO #temp VALUES (1,'08/17/2011','08/19/2011')
  9. INSERT INTO #temp VALUES (1,'09/24/2011','09/25/2011')
  10. INSERT INTO #temp VALUES (2,'08/09/2011','08/10/2011')
  11. INSERT INTO #temp VALUES (2,'08/17/2011','08/18/2011')
  12.  
  13. SELECT cod_programaciones,MIN(fecha_inicial) fecha_inicial , MAX(fecha_final) fecha_final FROM #temp
  14. GROUP BY cod_programaciones

Ajusta este sentencia a tu query para que saques los rangos que necesitas :)

Saludos!
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #3 (permalink)  
Antiguo 12/08/2011, 10:24
 
Fecha de Ingreso: septiembre-2010
Mensajes: 26
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: Consulta para fechas

Muchisimas gracias lo probé y funciona!!!! Gracias por tu respuesta Saludos

Etiquetas: fechas, programa, programacion
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




La zona horaria es GMT -6. Ahora son las 14:27.