¿Como puedo emitir consultas en PHP?
Bns noches, necesito su ayuda como una novata más en programación.
Resulta que necesito emitir diversas consultas pero por el momento necesito esta con urgencia, me piden que genere una consulta y que la misma me de los avances de las actividades del o los proyectos mayores al 50%, ya las tablas están cargadas, pero no encuentro como emitir esas consultas en php, nunca antes había programado en ese lenguaje.
La tabla de las actividades se llama registro_de_actividades y los campos son:
codigo_proyecto; actividad; horas_trabajadas; total_real_actividades que no me da la suma de todas las horas trabajadas.
Por favor respondan lo más rapido y claro posible.
Resulta que necesito emitir diversas consultas pero por el momento necesito esta con urgencia, me piden que genere una consulta y que la misma me de los avances de las actividades del o los proyectos mayores al 50%, ya las tablas están cargadas, pero no encuentro como emitir esas consultas en php, nunca antes había programado en ese lenguaje.
La tabla de las actividades se llama registro_de_actividades y los campos son:
codigo_proyecto; actividad; horas_trabajadas; total_real_actividades que no me da la suma de todas las horas trabajadas.
Por favor respondan lo más rapido y claro posible.
Respuesta de apolinux
1
1
apolinux, Ingeniero Electrónico con énfasis en Redes de Computadores,...
¿Me podrías dar una muestra del contenido de la tabla
hola experto esta es la tabla que se llama registro_actividades
cod_proyecto; cod_actividad; cod_responsable; fecha_hora y hora del registro;
04-G-ASO-117 1 800104 2009-04-15
00:00:00
horas comentarios nro_semana
2.5 hhhh 17
7
3
Esta es más o menos la tabla, para que tengas una visión de la situacion; por favor dame un ejemplo claro que no se como hacerlo :s
cod_proyecto; cod_actividad; cod_responsable; fecha_hora y hora del registro;
04-G-ASO-117 1 800104 2009-04-15
00:00:00
horas comentarios nro_semana
2.5 hhhh 17
7
3
Esta es más o menos la tabla, para que tengas una visión de la situacion; por favor dame un ejemplo claro que no se como hacerlo :s
ok.. ahora la pregunta, ¿cómo defines tu que el proyecto tenga un avance mayor al 50%? ¿En la tabla esta definido el limite de tiempo o de actividades para cada proyecto?
Lo que pasa es que las actividades tienen un peso cada una, entonces con esos pesos o valores de las actividades, es que se debe sacar el avance del proyecto.
Es decir solo mostrar la consulta como un reporte, si estos avances en las actividades que realicen los ingenieros de los proyecto es mayor al 50%,
No se si me explique con esto.
¿Sino lo hice házmelo saber y volveré a preguntar si?
Es decir solo mostrar la consulta como un reporte, si estos avances en las actividades que realicen los ingenieros de los proyecto es mayor al 50%,
No se si me explique con esto.
¿Sino lo hice házmelo saber y volveré a preguntar si?
¿Los pesos en que parte de la tabla van? no los veo? ¿O van en otra tabla?, si tu dices que llevan el 50%, ¿cómo se obtiene ese 50% como fórmula? A/Bx100 , ¿Si me hago entender?
Si los pesos de las actividades están en otra tabla, yo se que se puede calcular los promedios para así ver el 50% de los pesos de los avances de las actividades; pero al hacer esto voy a obtener el resultado de TODO y yo solo quiero obtener el promedio de los avances de las actividades que pertenezcan a el proyecto del ingeniero encargado que esta en ejecución, no el de todos los demás, esa es la idea que se me ocurrió, pero no se como hacer para que solo me de los pesos de esas actividades en especifico relacionadas a ese ingeniero y a ese proyecto específicamente, y después con ese resultado ya listo que me genere el reporte con el de ese o esos avances para cada ingeniero, ayudame por fis.
Nota lo de los promedios es lo que se me ocurrió hasta ahora para realizar el reporte, pero no se si este bn mi idea o no, estoy confundida :s.
¿Cuándo respondas por favor coloca la hora de tu próxima conexión para estar pendiente y contestar de una vez si?
Nota lo de los promedios es lo que se me ocurrió hasta ahora para realizar el reporte, pero no se si este bn mi idea o no, estoy confundida :s.
¿Cuándo respondas por favor coloca la hora de tu próxima conexión para estar pendiente y contestar de una vez si?
Pero para eso debes mostrarme la información de las tablas que necesitas sacar la información, pues sin eso no te puedo ayudar. Me serviría la estructura de las tablas y uno que otro registro.
Tabla de las actividades.
cod_actividad descrip_actividad peso cod_fase
1 Búsqueda de Información 0.02 1
2 Definición del Problema 0.02 1
10 Acopio de Información 0.02 2
11 Definición de Alcance 0.04 2
21 Def. de Equipos y Mater. 0.04 3
22 Cálculo y Diseño Definit. 0.06 3
Tabla Asignados_proyecto
cod_proyecto cod_responsable
11-G-GCO-111 11111
22-G-GPY-222 11111
Tabla cargo
cod_cargo descrip_cargo
1 ing proyecto
Tabla cuenta
cod_cuenta
clave
estatus
cod_tipo_usuario tipo usuario(administrador,etc)
cod_actividad descrip_actividad peso cod_fase
1 Búsqueda de Información 0.02 1
2 Definición del Problema 0.02 1
10 Acopio de Información 0.02 2
11 Definición de Alcance 0.04 2
21 Def. de Equipos y Mater. 0.04 3
22 Cálculo y Diseño Definit. 0.06 3
Tabla Asignados_proyecto
cod_proyecto cod_responsable
11-G-GCO-111 11111
22-G-GPY-222 11111
Tabla cargo
cod_cargo descrip_cargo
1 ing proyecto
Tabla cuenta
cod_cuenta
clave
estatus
cod_tipo_usuario tipo usuario(administrador,etc)
No se que paso ni porque salio eso así.
Tabla cuenta
cod_cuenta clave estatus cod_tipo_usuario tipo usuario(administrador, etc) 11111 xxxxx 1 1
Tabla especialidad
cod_especialidad descrip_especialidad
1 Civil
2 Arquitectura
3 Electrica
4 Mecanica
Tabla fase
cod_fase descrip_fase
1 Ing. Conceptual
2 Ing. Básica
3 Ing. de Detalle
4 Licitac./Procura
Tabla proyecto
cod_proyecto descrip_proyecto cod_responsable responsable del proyecto status
11-G-GCO-111 Reconstrucción 11111 1
De Losas de piso
Frente de Hornos
22-G-GPY-222 Reconstrucción de 11111 1
Losa de Piso,
Paredes y canales
Tabla registro_actividades
cod_proyecto cod_actividad cod_rsponsable fecha/hora horas nro_smana
11-G-GCO-111 1 11111 2009-04-15 00:00:00 17
22-G-GPY-222 10 11111 2009-04-16 00:00:00 17
22-G-GPS-222 7 11111 2009-04-17 00:00:00 11
11-G-GCO-111 3 11111 2009-04-18 00:00:00 18
cod_responsable nombre_responsable cod_cuenta cod_cargo cod_especialidad e_mail
11111 Pepito x 11111 1 1 pepito.com
Tabla cuenta
cod_cuenta clave estatus cod_tipo_usuario tipo usuario(administrador, etc) 11111 xxxxx 1 1
Tabla especialidad
cod_especialidad descrip_especialidad
1 Civil
2 Arquitectura
3 Electrica
4 Mecanica
Tabla fase
cod_fase descrip_fase
1 Ing. Conceptual
2 Ing. Básica
3 Ing. de Detalle
4 Licitac./Procura
Tabla proyecto
cod_proyecto descrip_proyecto cod_responsable responsable del proyecto status
11-G-GCO-111 Reconstrucción 11111 1
De Losas de piso
Frente de Hornos
22-G-GPY-222 Reconstrucción de 11111 1
Losa de Piso,
Paredes y canales
Tabla registro_actividades
cod_proyecto cod_actividad cod_rsponsable fecha/hora horas nro_smana
11-G-GCO-111 1 11111 2009-04-15 00:00:00 17
22-G-GPY-222 10 11111 2009-04-16 00:00:00 17
22-G-GPS-222 7 11111 2009-04-17 00:00:00 11
11-G-GCO-111 3 11111 2009-04-18 00:00:00 18
cod_responsable nombre_responsable cod_cuenta cod_cargo cod_especialidad e_mail
11111 Pepito x 11111 1 1 pepito.com
Hola bns noches no se que paso ahí están todas las tablas las primeras tres están en la parte de arriba y las otras están abajo, disculpa no se porque salio eso así. bns noches espero tu respuesta.
Ok, estoy viendo la información, pero de todos modos sigo sin saber para cada proyecto, cual es el tiempo estimado o el tiempo definido, pues sin ese valor no se puede calcular el avance. La penúltima tabla, que es la más relacionada con eso, indica un campo fecha/hora y otro campo nro_de semana, ¿esos campos que describen con exactitud? ¿No será esos los campos que necesitas para calcular el avance?
Lo que pasa es que creo que ellos miden los avances a través de el valor de las actividades de todas formas mi el reporte que tengo y como sacan esos valores ok.
Descripción actividad horas/hombre_inver total h/h avance_real %
L M M J V S D ACt. ACUM
sala_descanso 05-G-111 2 1 5 8
sala_comedor 05-G- 222 3 2
inspeccion 05-G-111 2 6.5 8.5 2 19
total 7 9.5 8.5 7 32
creo que quieren saber si por lo menos cumplen con todas sus actividades a traves de las horas que inviertan eso es lo que dedusco, pero de verdad no se ahora estoy perdida al respecto:(. por los momentos este es el unico reporte pero ahora siento que estoy mas confundida que nunca :(.
Descripción actividad horas/hombre_inver total h/h avance_real %
L M M J V S D ACt. ACUM
sala_descanso 05-G-111 2 1 5 8
sala_comedor 05-G- 222 3 2
inspeccion 05-G-111 2 6.5 8.5 2 19
total 7 9.5 8.5 7 32
creo que quieren saber si por lo menos cumplen con todas sus actividades a traves de las horas que inviertan eso es lo que dedusco, pero de verdad no se ahora estoy perdida al respecto:(. por los momentos este es el unico reporte pero ahora siento que estoy mas confundida que nunca :(.
Pues ahí esta, donde dice horas hombre invertidas y total de horas, sería sacar una regla de tres sencilla algo como:
avance = horas_trabajadas/total_horas_asignadas * 100
avance = horas_trabajadas/total_horas_asignadas * 100
Si pero ese no es el problema, recuerda que necesito emitir el reporte pero solo de los ingenieros que tengas un avance mayor o igual al 50% en sus proyectos... y con eso lo saco esta bn pero como hago para que me de ese reporte solo de aquellos que hayan avanzado en más del 50%, ¿con eso nada más? ¿Creo qué no es posible o si?
para obtener los registros de actividades con avance > al 50% sería algo como
select * from registro_actividades WHERE avance_real > 50
para obtener los responsables, debes hacer una consulta cruzada, seria algo como esto, pues no entiendo bien la verdad la estructura de las tablas que enviaste..estoy adivinando:
select cuenta.nombre, registro_actividades.avance from
cuenta LEFT JOIN registro_actividades ON cuenta.cod_cuenta = registro_actividades.cod_responsable
WHERE avance_real > 50
espero que te de alguna luz al respecto. De cualquier manera , debes tener en cuenta que para poder hacer este tipo de analisis, debes tener un diagrama o esquema a la mano del modelo de BD, de esta manera es mucho más fácil realizar el análisis.
select * from registro_actividades WHERE avance_real > 50
para obtener los responsables, debes hacer una consulta cruzada, seria algo como esto, pues no entiendo bien la verdad la estructura de las tablas que enviaste..estoy adivinando:
select cuenta.nombre, registro_actividades.avance from
cuenta LEFT JOIN registro_actividades ON cuenta.cod_cuenta = registro_actividades.cod_responsable
WHERE avance_real > 50
espero que te de alguna luz al respecto. De cualquier manera , debes tener en cuenta que para poder hacer este tipo de analisis, debes tener un diagrama o esquema a la mano del modelo de BD, de esta manera es mucho más fácil realizar el análisis.
- Compartir respuesta
- Anónimo
ahora mismo