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

Ayuda Con Un Query

Estas en el tema de Ayuda Con Un Query en el foro de Mysql en Foros del Web. la consulta es la siguiente, necesito mostrar la cedula del conductor, nombre, apellido, las extras diurnas laboradas, las nocturnas y dominicales, ademas mostrar lo que ...
  #1 (permalink)  
Antiguo 30/05/2008, 11:15
 
Fecha de Ingreso: abril-2008
Mensajes: 40
Antigüedad: 15 años, 11 meses
Puntos: 0
Ayuda Con Un Query

la consulta es la siguiente, necesito mostrar la cedula del conductor, nombre, apellido, las extras diurnas laboradas, las nocturnas y dominicales, ademas mostrar lo que se gana por hacer los viajes y el total a pagar.

las tablas que tengo en mi bd son las siguientes:

TABLE `reporte` (
`codigo_reporte` varchar(90) NOT NULL default '',
`fecha` date NOT NULL,
`codigo_equipo` varchar(20) NOT NULL default '',
`codigo_usuario` varchar(20) NOT NULL default '',
`codigo_obra` varchar(50) NOT NULL default '',
PRIMARY KEY (`codigo_reporte`),
KEY `FK_codigo_equipo` (`codigo_equipo`),
KEY `FK_codigo_obra` (`codigo_obra`),
KEY `FK_detalle_reporte` (`codigo_usuario`)
) ;

TABLE `equipos` (
`codigo_equipo` varchar(20) NOT NULL default '',
`marca_equipo` varchar(30) NOT NULL default '',
`nombre_equipo` varchar(80) NOT NULL default '',
`codigo_tipo_equipo` varchar(20) NOT NULL default '',
`modelo` varchar(20) NOT NULL default '',
`serie` varchar(20) NOT NULL default '',
`capacidad` varchar(20) NOT NULL default '',
`ano` decimal(4,0) NOT NULL default '0',
`valor_hora_viaje` double(7,0) NOT NULL default '0',
PRIMARY KEY (`codigo_equipo`),
KEY `FK_equipos` (`codigo_tipo_equipo`)
);

TABLE `tipo_equipos` (
`codigo_tipo_equipo` decimal(20,0) NOT NULL,
`modotrabajo` varchar(10) NOT NULL,
`nombre_tipo_equipo` varchar(50) NOT NULL default '',
PRIMARY KEY (`codigo_tipo_equipo`)
);

TABLE `remisiones` (
`cod_remision` varchar(10) NOT NULL,
`codigo_reporte` varchar(90) NOT NULL,
`codigo_usuario` varchar(30) NOT NULL,
`placa` varchar(30) NOT NULL,
`cod_ruta` varchar(100) NOT NULL,
`nombre_ruta` varchar(100) NOT NULL,
`valor_viaje` double(10,2) NOT NULL,
`cod_material` varchar(10) NOT NULL,
`material` varchar(25) NOT NULL,
`cantidad` double(5,2) NOT NULL,
`valor_material` double(10,2) NOT NULL,
`precio_transporte` double(10,2) NOT NULL,
`total` double(10,2) NOT NULL,
PRIMARY KEY (`cod_remision`)
) ;

TABLE `operadores` (
`CODIGO_OPERADOR` varchar(20) NOT NULL default '',
`NOMBRE_OPERADOR` varchar(50) NOT NULL default '',
`APELLIDO_OPERADOR` varchar(50) NOT NULL default '',
`cargo` varchar(50) NOT NULL default '',
`salario` double(8,2) NOT NULL default '0.00',
`DIRECCION` varchar(25) default NULL,
`TELEFONO` decimal(10,0) default NULL,
`codigo_tipo_usuario` varchar(20) NOT NULL default '',
PRIMARY KEY (`CODIGO_OPERADOR`)
) ;

TABLE `detalle_operador` (
`codigo_reporte` varchar(90) NOT NULL default '',
`codigo_usuario` varchar(20) NOT NULL default '',
`laboradas` double(10,2) NOT NULL,
`llegada` time NOT NULL,
`salida` time NOT NULL,
`extras_diurnas` double(10,2) NOT NULL,
`nocturnas` double(10,2) NOT NULL,
`domingos` double(10,2) NOT NULL,
`viajes` decimal(10,0) NOT NULL,
`precio` decimal(10,2) NOT NULL,
KEY `FK_detalle_operador` (`codigo_reporte`),
KEY `FK_usuario` (`codigo_usuario`)
) ;

y el query que use es este:

Select CODIGO_OPERADOR AS CO,NOMBRE_OPERADOR AS NOP,APELLIDO_OPERADOR AS AO, sum(extras_diurnas) ed,(sum(extras_diurnas)*((salario/240)*(1.25)))as valor_ed,sum(nocturnas) n,((sum(nocturnas)*((salario/240)*(1.75)))+(sum(nocturnas)*((salario/240)*(0.35))))as valor_en,sum(domingos)as d,(sum(domingos)*((salario/240)*(1.75)))as valor_edo, sum(rem.valor_viaje) v,((sum(extras_diurnas)*((salario/240)*(1.25)))+(sum(domingos)*((salario/240)*(1.75)))+(((sum(nocturnas))*((salario/240)*(1.75)))+((sum(nocturnas))*((salario/240)*(0.35))))+sum(rem.valor_viaje)) as total From OPERADORES as O,remisiones as rem, detalle_operador as DOP, reporte as r, equipos as e, tipo_equipos as te Where r.codigo_usuario = dop.codigo_usuario And dop.codigo_usuario = o.CODIGO_OPERADOR and r.codigo_reporte=dop.codigo_reporte and e.codigo_equipo=r.codigo_equipo and te.codigo_tipo_equipo=e.codigo_tipo_equipo and r.fecha BETWEEN '2008-05-01' and '2008-05-31' and dop.codigo_usuario=rem.codigo_usuario group by DOP.codigo_usuario asc;


el problema esta en que me muestra triplicados el valor de las horas extas y de los viajes y no he sabido como resolver ese problema, quisiera que me ayudaran como solucionarlo y hacer el query correctamente
  #2 (permalink)  
Antiguo 30/05/2008, 11:45
Avatar de the_scorpion  
Fecha de Ingreso: mayo-2006
Ubicación: Cuba
Mensajes: 696
Antigüedad: 17 años, 10 meses
Puntos: 3
Respuesta: Ayuda Con Un Query

hola
uuuuffff largo eso pero para que vayas echando candela creo que tu problema se resuelve usando DISTINCT
select DISTINCT

pd: probar haber que sucede
__________________
Que hablen mal de uno es espantoso. Pero hay algo peor: que no hablen.
Quien hace, puede equivocarse. Quien nada hace, ya está equivocado".
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 19:30.