Consulta compleja Microsoft SQL Server 2000

David Ricardo Girona López 0 Puntos de reputación
2024-04-04T10:24:16.2466667+00:00

Hola a tod@s. Microsoft SQL Server 2000

Dispongo de una tabla de reservas, reservas hoteleras, donde guardo entre otra mucha información:

Desde | Hasta | Ocupación | Origen

Desde: Fecha inicio estancia en el hotel

Hasta: Fecha finalización estancia en el Hotel

Ocupación: Número de personas (una persona, dos personas ... que disfrutan del apartamento)

Origen: lugar de origen de las personas que están alojadas.

Necesito:

Por días, contar el número de personas que están de vacaciones por cada Origen

Con esa información necesito realizar el informe que adjunto, solo se me ocurre hacer bucles y acumuladores para lograrlo. Alguien me puede orientar

sql.jpg

SQL Server
SQL Server
Familia de sistemas de análisis y administración de bases de datos relacionales de Microsoft para soluciones de comercio electrónico, línea de negocio y almacenamiento de datos.
140 preguntas
0 comentarios No hay comentarios
{count} votos

1 respuesta

Ordenar por: Muy útil
  1. Jonathan Pereira Castillo 15,870 Puntos de reputación Personal externo de Microsoft
    2025-01-22T21:03:05.67+00:00

    ¡Hola David Ricardo Girona López!

    Esperamos que este mensaje te encuentre bien.

    Lamentamos sinceramente la demora en abordar tu tema en este foro.

    Para contar el número de personas por día y origen, puedes usar una consulta SQL que genere un rango de fechas y luego cuente las ocupaciones. Aquí tienes un ejemplo:

    WITH DateRange AS (
        SELECT CAST('2024-01-01' AS DATE) AS Date
        UNION ALL
        SELECT DATEADD(DAY, 1, Date)
        FROM DateRange
        WHERE Date < '2024-12-31'
    )
    SELECT 
        dr.Date,
        r.Origen,
        SUM(r.Ocupación) AS TotalOcupación
    FROM 
        DateRange dr
        LEFT JOIN Reservas r ON dr.Date BETWEEN r.Desde AND r.Hasta
    GROUP BY 
        dr.Date, r.Origen
    ORDER BY 
        dr.Date, r.Origen;
    

    Esto debería ayudarte a obtener el informe deseado.

    Si no recibimos una respuesta tuya en los próximos días, procederemos a cerrar el tema. Sin embargo, queremos asegurarte que siempre estamos disponibles para cualquier asistencia que puedas necesitar.

    Agradecemos tu comprensión y estamos aquí para ayudar en lo que sea necesario.

    Estaré atento a tu respuesta.,

     Jonathan

    ----------*

    Tu opinión es muy importante para nosotros! Si esta respuesta resolvió tu consulta, por favor haz clic en ''. Esto nos ayuda a mejorar continuamente la calidad y relevancia de nuestras soluciones.

    0 comentarios No hay comentarios

Su respuesta

Las respuestas se pueden marcar como respuestas aceptadas por el autor de la pregunta, lo que ayuda a los usuarios a conocer la respuesta que resolvió el problema del autor.