21/01/2012, 10:51
|
| | Fecha de Ingreso: enero-2009
Mensajes: 16
Antigüedad: 16 años Puntos: 0 | |
Respuesta: Restar dos campos de dos tablas tengo el mismo problema con una consulta de estas y estoy buscando por aqui otra forma de realizarlo pero sin la necesidad de hacer tres consultas, para no afectar el planificador del motos de la BD, pero no veo la forma de hacerlo.
una aclaracion sobre esta consulta, segun mi analisis, no hay necesidad de sumar en el select exterior las Sum(ENTRADAS.Suma_E - SALIDAS.Suma_S) por que si o si siempre van existir un registro para cada conjunto de ENTRADAS.Referencia, Entradas.Color, Entradas.Talla entonces no hay necesidad de sumarlo.
creo que la consulta que esta de esta forma:
SELECT ENTRADAS.Referencia, Entradas.Color, Entradas.Talla, SUM(ENTRADAS.Suma_E - SALIDAS.Suma_S)
FROM [SELECT ENTRADAS.Referencia, ENTRADAS.Color, ENTRADAS.Talla, Sum(ENTRADAS.Cantidad_E) AS Suma_E
FROM ENTRADAS
GROUP BY ENTRADAS.Referencia, ENTRADAS.Color, ENTRADAS.Talla
ORDER BY ENTRADAS.Referencia]. AS Entradas INNER JOIN [SELECT SALIDAS.Referencia, SALIDAS.Color, SALIDAS.Talla, Sum(SALIDAS.Cantidad_S) AS Suma_S
FROM SALIDAS
GROUP BY SALIDAS.Referencia, SALIDAS.Color, SALIDAS.Talla
ORDER BY SALIDAS.Referencia]. AS Salidas ON (ENTRADAS.Talla = SALIDAS.Talla) AND (ENTRADAS.Color = SALIDAS.Color) AND (ENTRADAS.Referencia = SALIDAS.Referencia)
GROUP BY ENTRADAS.Referencia, ENTRADAS.Color, ENTRADAS.Talla;
quedaria de esta forma:
SELECT ENTRADAS.Referencia, Entradas.Color, Entradas.Talla, ENTRADAS.Suma_E - SALIDAS.Suma_S AS Existencias
FROM [SELECT ENTRADAS.Referencia, ENTRADAS.Color, ENTRADAS.Talla, Sum(ENTRADAS.Cantidad_E) AS Suma_E
FROM ENTRADAS
GROUP BY ENTRADAS.Referencia, ENTRADAS.Color, ENTRADAS.Talla
ORDER BY ENTRADAS.Referencia]. AS Entradas INNER JOIN [SELECT SALIDAS.Referencia, SALIDAS.Color, SALIDAS.Talla, Sum(SALIDAS.Cantidad_S) AS Suma_S
FROM SALIDAS
GROUP BY SALIDAS.Referencia, SALIDAS.Color, SALIDAS.Talla
ORDER BY SALIDAS.Referencia]. AS Salidas ON (ENTRADAS.Talla = SALIDAS.Talla) AND (ENTRADAS.Color = SALIDAS.Color) AND (ENTRADAS.Referencia = SALIDAS.Referencia)
Un saludo!!!
si estoy mal que alguien me corriga. gracias. |