Hola comunidad
Tengo una tabla de la cual necesito obtener cierta informacion. Dicha informacion la obtengo usando
un GROUP BY
pero el problema es que necesito solo saber el numero de registros y al usar COUNT(*) se
me cuentan todos los registros. para que se vea mejor he decidido postear una tabla mas sencilla
donde a simple vista se vea el resultado. En esta tabla hay varios registros por turno, por fecha.
Lo que quiero es saber cuantos turnos se trabajaron por fecha pero sin los repetidos o sea para una
fecha X solo pueden trabajarse 3 turnos el 1 el 2 y el 3, aunque hallan varios 1 o 2 o 3.
Al usar en la tabla de abajo esta sentencia
Código SQL
[-]
SELECT * FROM `test`.`esquema` WHERE conv = 1 GROUP BY fecha, turno;
Obtengo 6 registros con los Ids 1, 4, 7, 10, 11, 12 que son los que debo obtener, pero esta
sentencia sql forma parte de otra mucho mas compleja por lo que esta solo debe devolverme el
total de registros, sin embargo al usar un COUNT(*) me cuenta todos los registros
, los que se
ven y los que no
. Me imagino esto sea por el funcionamiento del GROUP BY
. Alguna idea de como
obtener el numero de registros ???
Gracias por la ayuda !!!
Código SQL
[-]
DROP TABLE IF EXISTS `esquema`;
CREATE TABLE `esquema` (
`id` int(10) unsigned NOT NULL auto_increment,
`conv` varchar(45) NOT NULL,
`orden` varchar(45) NOT NULL,
`fecha` varchar(45) NOT NULL,
`turno` varchar(45) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=13 DEFAULT CHARSET=latin1;
--
-- Dumping data for table `esquema`
--
;
INSERT INTO `esquema` (`id`,`conv`,`orden`,`fecha`,`turno`) VALUES
(1,'1','1','2013-03-11','1'),
(2,'1','2','2013-03-11','1'),
(3,'1','3','2013-03-11','1'),
(4,'1','4','2013-03-11','2'),
(5,'1','5','2013-03-11','2'),
(6,'1','6','2013-03-11','2'),
(7,'1','7','2013-03-11','3'),
(8,'1','8','2013-03-11','3'),
(9,'1','9','2013-03-11','3'),
(10,'1','10','2013-03-12','1'),
(11,'1','11','2013-03-12','2'),
(12,'1','12','2013-03-13','3');
;