Sumar rango de columnas con nombre de fecha
Publicado por Esteban (3 intervenciones) el 12/02/2019 18:21:15
Hola a todos. Tengo una tabla en MySQL, esta tabla se parece al excel que adjunto. El nombre de cada columna corresponde a un día del año en formato de fecha, en total son 365 columnas + 1 que es la del ID. El ID es un número consecutivo, son 2,000 filas.
Necesito sumar por rango de fechas y por ID, ejemplo:
la suma desde 2019-01-01 hasta 2019-03-05 del ID 5, el total es 96,032.
Este 96,032 es lo que necesito.
Por favor, ojalá me pudieran orientar en cómo hacerlo, posiblemente tenga que cambiar la estructura de la tabla y poner las fechas como filas y tener 2,000 columnas. Sin embargo es posible que se carguen más registros y ya no sean 2,000 sino más.
Mi tabla se ve asi:
CREATE TABLE IF NOT EXISTS `nombre_base`.`montos_diarios` (
`id_base_general` INT(6) NOT NULL AUTO_INCREMENT,
`2019-01-01` DECIMAL(20,5) DEFAULT 0.00,
`2019-01-02` DECIMAL(20,5) DEFAULT 0.00,
`2019-01-03` DECIMAL(20,5) DEFAULT 0.00,
`2019-01-04` DECIMAL(20,5) DEFAULT 0.00,
`2019-01-05` DECIMAL(20,5) DEFAULT 0.00,
etc,etc,etc
`2019-12-30` DECIMAL(20,5) DEFAULT 0.00,
`2019-12-31` DECIMAL(20,5) DEFAULT 0.00,
PRIMARY KEY (`id_base_general`))
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8
COLLATE = utf8_general_ci;
Muchas gracias.
Necesito sumar por rango de fechas y por ID, ejemplo:
la suma desde 2019-01-01 hasta 2019-03-05 del ID 5, el total es 96,032.
Este 96,032 es lo que necesito.
Por favor, ojalá me pudieran orientar en cómo hacerlo, posiblemente tenga que cambiar la estructura de la tabla y poner las fechas como filas y tener 2,000 columnas. Sin embargo es posible que se carguen más registros y ya no sean 2,000 sino más.
Mi tabla se ve asi:
CREATE TABLE IF NOT EXISTS `nombre_base`.`montos_diarios` (
`id_base_general` INT(6) NOT NULL AUTO_INCREMENT,
`2019-01-01` DECIMAL(20,5) DEFAULT 0.00,
`2019-01-02` DECIMAL(20,5) DEFAULT 0.00,
`2019-01-03` DECIMAL(20,5) DEFAULT 0.00,
`2019-01-04` DECIMAL(20,5) DEFAULT 0.00,
`2019-01-05` DECIMAL(20,5) DEFAULT 0.00,
etc,etc,etc
`2019-12-30` DECIMAL(20,5) DEFAULT 0.00,
`2019-12-31` DECIMAL(20,5) DEFAULT 0.00,
PRIMARY KEY (`id_base_general`))
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8
COLLATE = utf8_general_ci;
Muchas gracias.
- Libro1.zip(451,3 KB)
Valora esta pregunta
0