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

Referencia cruzada por dias

Estas en el tema de Referencia cruzada por dias en el foro de Mysql en Foros del Web. Como puedo haces una referencia cruzada por dias teniendo solo 2 tablas...
  #1 (permalink)  
Antiguo 11/07/2017, 01:46
 
Fecha de Ingreso: enero-2011
Mensajes: 49
Antigüedad: 8 años, 10 meses
Puntos: 0
Referencia cruzada por dias

Como puedo haces una referencia cruzada por dias teniendo solo 2 tablas

  #2 (permalink)  
Antiguo 11/07/2017, 01:53
 
Fecha de Ingreso: enero-2011
Mensajes: 49
Antigüedad: 8 años, 10 meses
Puntos: 0
Respuesta: Referencia cruzada por dias

La consulta puede ser al revés también al lado izquierdo los tipos de habitaciones y al derecho los días pero tienen que ser del 1 a 31 depende de los días que tenga el mes.
  #3 (permalink)  
Antiguo 11/07/2017, 07:19
 
Fecha de Ingreso: enero-2011
Mensajes: 49
Antigüedad: 8 años, 10 meses
Puntos: 0
Respuesta: Referencia cruzada por dias

Bueno por el momento lo hice con un procedimiento almacenado para generar la consulta, pero no se si esta bien la logica


Código MySQL:
Ver original
  1. SELECT a.TipoID, a.Habitacion,
  2.           b.D01, b.D02, b.D03, b.D04, b.D05, b.D06, b.D07, b.D08, b.D09, b.D10,
  3.           b.D11, b.D12, b.D13, b.D14, b.D15, b.D16, b.D17, b.D18, b.D19, b.D20,
  4.           b.D21, b.D22, b.D23, b.D24, b.D25, b.D26, b.D27, b.D28, b.D29, b.D30,
  5.           b.D31, b.Total
  6.           FROM habitaciones_tipo a
  7.                       LEFT JOIN (SELECT
  8.                                 b.TipoID,
  9.                                 SUM(DAY(a.Fecha) =  1) D01,
  10.                                 SUM(DAY(a.Fecha) =  2) D02,
  11.                                 SUM(DAY(a.Fecha) =  3) D03,
  12.                                 SUM(DAY(a.Fecha) =  4) D04,
  13.                                 SUM(DAY(a.Fecha) =  5) D05,
  14.                                 SUM(DAY(a.Fecha) =  6) D06,
  15.                                 SUM(DAY(a.Fecha) =  7) D07,
  16.                                 SUM(DAY(a.Fecha) =  8) D08,
  17.                                 SUM(DAY(a.Fecha) =  9) D09,
  18.                                 SUM(DAY(a.Fecha) = 10) D10,
  19.                                 SUM(DAY(a.Fecha) = 11) D11,
  20.                                 SUM(DAY(a.Fecha) = 12) D12,
  21.                                 SUM(DAY(a.Fecha) = 13) D13,
  22.                                 SUM(DAY(a.Fecha) = 14) D14,
  23.                                 SUM(DAY(a.Fecha) = 15) D15,
  24.                                 SUM(DAY(a.Fecha) = 16) D16,
  25.                                 SUM(DAY(a.Fecha) = 17) D17,
  26.                                 SUM(DAY(a.Fecha) = 18) D18,
  27.                                 SUM(DAY(a.Fecha) = 19) D19,
  28.                                 SUM(DAY(a.Fecha) = 20) D20,
  29.                                 SUM(DAY(a.Fecha) = 21) D21,
  30.                                 SUM(DAY(a.Fecha) = 22) D22,
  31.                                 SUM(DAY(a.Fecha) = 23) D23,
  32.                                 SUM(DAY(a.Fecha) = 24) D24,
  33.                                 SUM(DAY(a.Fecha) = 25) D25,
  34.                                 SUM(DAY(a.Fecha) = 26) D26,
  35.                                 SUM(DAY(a.Fecha) = 27) D27,
  36.                                 SUM(DAY(a.Fecha) = 28) D28,
  37.                                 SUM(DAY(a.Fecha) = 29) D29,
  38.                                 SUM(DAY(a.Fecha) = 30) D30,
  39.                                 SUM(DAY(a.Fecha) = 31) D31,
  40.                                 SUM(1) Total
  41.                          FROM estadia_lineas a
  42.                               LEFT JOIN estadia b ON a.EstadiaID = b.EstadiaID
  43.                          WHERE a.Estado = 1 AND (a.Fecha BETWEEN tdDesde AND tdHasta)
  44.                          GROUP BY TipoID)  b
  45.                     ON a.TipoID = b.TipoID;

Etiquetas: dias, referencia, tabla
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 00:28.