none
Consulta SQL RRS feed

  • Pregunta

  • Estimados,

    tengo un problema con esta consulta SQL,  la idea es mostrar todas las máquinas que ingresaron después de las 10:00 de la mañana durante la semana en curso.

    El resultado es este

     

    FECHA    HORA

    03-11-08   10:30

    04-11-08   12:00

     

    Mi idea es que me muestre algo como esto:

     

    03-11-08    04-11-08

     10:30         12:00

     

    Como son siete diás que tiene la semana no debo tener problemas con el largo de las columnas.

    De ante mano, gracias

     

    pd: Este código esta funcionado

     

    SELECT
    DISTINCT CD_FECHA AS FECHA,
    CD_HORA AS HORA
    FROM CONTROL_DIARIO
    WHERE WEEK(CD_FECHA, 3) = WEEK((SELECT DATE_FORMAT(NOW(), GET_FORMAT(DATE, 'ISO'))), 3)
    AND DAYOFWEEK(CD_FECHA) NOT IN (1, 7)
    AND CD_HORA > '10:00:00'
    AND CD_MAQUINA = 202
    AND CD_VALOR > 0
    ORDER BY CD_FECHA ASC;

    jueves, 6 de noviembre de 2008 15:26

Respuestas

  • Encontré la solución, la adjunto para quien pueda tener alguna duda similar: (MySQL)

     

      SELECT
      REPLACE(MAX(IF(WEEKDAY(CD_FECHA) = 0, CD_HORA,'00:00')), '00:00', '-') AS LUN,
      REPLACE(MAX(IF(WEEKDAY(CD_FECHA) = 1, CD_HORA,'00:00')), '00:00', '-') AS MAR,
      REPLACE(MAX(IF(WEEKDAY(CD_FECHA) = 2, CD_HORA,'00:00')), '00:00', '-') AS MIE,
      REPLACE(MAX(IF(WEEKDAY(CD_FECHA) = 3, CD_HORA,'00:00')), '00:00', '-') AS JUE,
      REPLACE(MAX(IF(WEEKDAY(CD_FECHA) = 4, CD_HORA,'00:00')), '00:00', '-') AS VIE,
      REPLACE(MAX(IF(WEEKDAY(CD_FECHA) = 5, CD_HORA,'00:00')), '00:00', '-') AS SAB,
      REPLACE(MAX(IF(WEEKDAY(CD_FECHA) = 6, CD_HORA,'00:00')), '00:00', '-') AS DOM
      FROM CONTROL_DIARIO
      WHERE WEEK(CD_FECHA, 3) = WEEK((SELECT DATE_FORMAT(NOW(), GET_FORMAT(DATE, 'ISO'))), 3)
      AND WEEKDAY(CD_FECHA) NOT IN (5, 6)
      AND CD_MAQUINA = MAQUINA
      AND CD_VALOR > 0
      ORDER BY CD_FECHA ASC;

    jueves, 6 de noviembre de 2008 22:07