Ver Mensaje Individual
  #7 (permalink)  
Antiguo 13/10/2010, 04:42
quimfv
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: Consulta Sql de 2 tablas

En este caso hay que repalntearlo todo...

Código SQL:
Ver original
  1. SELECT MONTH(Ventas.fecha) & '/' & YEAR(Ventas.fecha) AS Fecha,
  2.              SUM(Ventas.ventas) AS [Ventas Mensuales],
  3.              SUM(Ventas.cmv) AS CMV,
  4.              SUM(Ventas.Ventas-Ventas.CMV) AS [MARGEN DE CONTRIBUCION],
  5.              (SELECT Gf.Monotributo
  6.                   FROM Gastos_fijos Gf
  7.                   WHERE
  8.                       (((MONTH(Gf.[fecha]) & '/' & YEAR(Gf.[fecha]))=MONTH([Ventas].[fecha]) & '/' & YEAR([Ventas].[fecha])))) AS MonotributoMensual
  9.      FROM Ventas
  10.          WHERE (((MONTH([Ventas].[fecha])) BETWEEN 1 AND 12)
  11.               AND ((YEAR([Ventas].[fecha]))=2010))
  12.      GROUP BY MONTH(Ventas.fecha) & '/' & YEAR(Ventas.fecha);

siendo gastos fijos quizas seria mejor trabajarlo a parte una consulta para cada cosa... pero bueno eso te da lo que buscas siempre que no tengas dos registros de un mes determinado en la tabla gastos_fijos, puesto que si la subconsulta retorna mas de un registro dará error.

Si tienes varios registros puedes sumarlos para obtener uno solo, si MonoTributo solo tiene valor en un registro te dará igual

Código SQL:
Ver original
  1. Fecha          Monotributo  Otros ...
  2. 1/1/2010            4              0
  3. 5/1/2010            0              5

Si substituyes la subconsulta por

Código SQL:
Ver original
  1. SELECT SUM(Gf.Monotributo) AS SumaDeMonotributo
  2. FROM Gastos_fijos Gf
  3. GROUP BY MONTH(Gf.[fecha]) & '/' & YEAR(Gf.[fecha])
  4. HAVING (((MONTH(Gf.[fecha]) & '/' & YEAR(Gf.[fecha]))=MONTH([Ventas].[fecha]) & '/' & YEAR([Ventas].[fecha])))

tambien te funcionará con diversos registros....

Quim

Última edición por quimfv; 13/10/2010 a las 07:07