PHP - ¿Compleja? sentencia mysql - PHP

 
Vista:

¿Compleja? sentencia mysql - PHP

Publicado por Carlos (3 intervenciones) el 12/05/2004 00:24:13
Estimados compañeros, quisiera haceros participes de un pequeño problema con el que me he encontrado a ver si me podeis dar la solución.

Tengo las siguientes tablas (en realidad hay mas tablas y campos pero estos son los que interesan):

TABLE 'prevision' (
'importe' decimal(10,2),
'periodo' varchar(10),
'n_obra' int(11),
)

TABLE `obra` (
`n_obra` int(11),
`jefe_obra` int(4),
)

Se trata de sacar el importe total para cada periodo de cada jefe de obra. Es decir, algo de este tipo:

SELECT SUM(importe) as importe_total FROM prevision WHERE periodo='$periodo' AND...

y aqui lo que no consigo:

las 'n_obra' deben ser las de un determinado 'jefe_obra' que se recibe como parametro.

Espero vuestra ayuda del mismo modo que yo tambien ayudo siempre que puedo.

Muchas gracias

Carlos
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

no

Publicado por Gustavo Alzate (59 intervenciones) el 12/05/2004 01:17:52
Que significa n_obra?,

pero mas o menos lo que creo que te falta es:

SELECT SUM(importe) as importe_total
FROM prevision, obra
WHERE periodo=\'$periodo\'
AND
....de aqui en adelante no te puedo ayudar porque ignoro el sentido de n_obra, asumiendo que esto es como el identificador de una obra, entonces la consulta le falta estoo

prevision.n_obra=obra.n_obra
AND
jefe_obra=$jefe.

ojo que el la clausula from van los dos tablas porque vas a hacer un cruce de ambas, necesitas por lo tanto que que el jefe que se saca por parametro sea igual al que esta en la tabla obra, despues de eso cojes con todas las obras de el y las relacionas con las que estan en la tabla previcion, para ello pues deben ser iguales los valores de n_obra en ambas tablas, cuando todo esto se cumple sacas el importe y lo acumulas, el orden correcto es:

SELECT SUM(importe) as importe_total
FROM obra,prevision
WHERE jefe_obra=$jefe AND n_obra=n_obra
AND
periodo=\'$periodo\'.


Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:no

Publicado por Carlos (3 intervenciones) el 14/05/2004 13:45:16
n_obra es el identificativo (unico de la obra)

Otra cosa, esta sentencia se resliza dentro de un bluque que va barriendo todos los meses. Entonces de lo que se trata es que para cada uno de los meses sume los importes de cada jefe de obra según las obras que tenga cada uno.

Estoy probando a ver si rula. Ya te diré algo.

Un abrazo y muchas gracias,

Carlos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

LA SOLUCION!!!

Publicado por Carlos (3 intervenciones) el 14/05/2004 14:58:29
Muchas gracias,

Ya he hallado la solución. Muchas gracias por la idea.

$consulta6 = "SELECT SUM(importe) as a FROM prevision, obra WHERE (prevision.periodo='$periodo' AND prevision.n_obra=obra.n_obra AND obra.jefe_obra='$jefe_obra')";
$resultado6 = mysql_query($consulta6);
$total_periodo = mysql_result($resultado6,0,a);

Un abrazo,
Carlos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar