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

¿Compleja? sentencia mysql

Estas en el tema de ¿Compleja? sentencia mysql en el foro de Bases de Datos General en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 11/05/2004, 14:59
 
Fecha de Ingreso: mayo-2004
Mensajes: 4
Antigüedad: 20 años
Puntos: 0
¿Compleja? sentencia mysql

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

programacion.com
  #2 (permalink)  
Antiguo 11/05/2004, 22:57
Avatar de sism82  
Fecha de Ingreso: octubre-2003
Ubicación: Guadalajara
Mensajes: 865
Antigüedad: 20 años, 6 meses
Puntos: 1
mm no te entiendo

tienes que hacer consulta múltiple.
SELECT * FROM prevision AS pr, obra AS ob WHERE
pr.periodo = 'tu periodo seleccionado' AND ob.jefe_obra = 'identificador del jefe de obra que quieres'

eso es todo, AS es para darle otro nombre a las tablas dentro de la consulta para hacer referencia a ellas. Puedes omitirlo y usar el nombre completo si lo deseas. También puse SELECT * por sencillez, pero puedes seleccionar los campos que desees de cada tabla.

Saludos
  #3 (permalink)  
Antiguo 12/05/2004, 02:19
 
Fecha de Ingreso: marzo-2004
Ubicación: Extremadura
Mensajes: 206
Antigüedad: 20 años, 1 mes
Puntos: 0
Prueba con esto y me cuentas si es lo que quieres...

Código:
select sum(prevision.importe) from prevision,obra where prevision.periodo='$periodo' and prevision.n_obra=obra.n_obra;

Salu2
  #4 (permalink)  
Antiguo 14/05/2004, 06:16
 
Fecha de Ingreso: mayo-2004
Mensajes: 4
Antigüedad: 20 años
Puntos: 0
Ya he hallado la solución. Muchas gracias a todos por las ideas, me han sido de mucha utilidad. Sin vuestra ayuda no lo hubiera sacado.

Gracias

Aqui la solución:

$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
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 21:21.