Ver Mensaje Individual
  #13  
Antiguo 19-01-2009
Avatar de fjcg02
[fjcg02] fjcg02 is offline
Miembro Premium
 
Registrado: dic 2003
Ubicación: Zamudio
Posts: 1.410
Reputación: 22
fjcg02 Va camino a la fama
Bueno,
aqui tienes tu código.
Te faltaba meter la empresa en las condiciones del inner join
No se de dónde sale el parámetro oficina, que he quitado. El resto, es lo mismo que tenías, sólo tienes que comparar las querys.
El valor del parámetro empresa debe coincidir con algún valor de la tabla (emp1).
Me he basado en el juego de ensayo de la hoja de cálculo que has incluido.
Te aconsejo que juegues en una bañera primero, luego en una piscina y luego definitivamente te tires al mar. por qué? cuando hagas este tipo de consultas, hazlas sacando todos los valores, y de ahí vas filtrando poco a poco, es decir, intenta sacar los valores de las empresas primero, luego las empresas y las áreas, luego filtrando por empresa, area, .... hasta que salga lo que quieras.

Código SQL [-]
select p.empresa,p.area , 
                sum(P.monto) AS MONTO, 
                sum(case when estado = 'F' then monto_compr else 0 end) AS COMPRA,
               count(case when estado = 'P' then 1 else 0 end) AS EXCEDIDA
from presupuesto p inner join compras c on c.empresa=c.empresa and c.area = p.area and c.ano = p.ano
and p.mes = c.mes AND P.EMPRESA = C.EMPRESA AND P.AREA=C.AREA
where p.mes = '1'
and p.ano =   '2009'
and P.empresa = 'emp1'
GROUP BY P.empresa, P.AREA


Saludos, cuentanos cómo te queda.
__________________
Cuando los grillos cantan, es que es de noche - viejo proverbio chino -
Responder Con Cita