26/05/2010, 02:22
|
| | | Fecha de Ingreso: diciembre-2008 Ubicación: Zaragoza(España)
Mensajes: 624
Antigüedad: 16 años Puntos: 31 | |
Respuesta: resta entre dos querys Lo que deberias hacer es algo así, seguramente no te ejecutará, pero unelos por el union y mete todo dentro del from para sacarte los resultados.
Select a.id,ru-ru2,rg-rg2
FROM
(
SELECT a.id,
SUM(c.cantidadD) as ru,
SUM(c.gradosD) as rg
FROM tbl_almacen a
INNER JOIN tbl_movimiento b ON b.id_destino = a.id
INNER JOIN tbl_vale c ON c.id_movimiento = b.id
WHERE (c.id_vendimia = @prVendimia)
AND (c.noSemana < @prSemana)
GROUP BY a.id,a.nombre_contenido,a.unidades,a.grados UNION
SELECT a.id,
SUM(e.cantidadO) as ru2,
SUM(e.gradosO) as rg2
FROM tbl_almacen a
INNER JOIN tbl_movimiento d ON d.id_origen = a.id
INNER JOIN tbl_vale e ON e.id_movimiento = d.id
WHERE (e.id_vendimia = @prVendimia)
AND (e.noSemana < @prSemana)
GROUP BY a.id,a.nombre_contenido,a.unidades,a.grados
)GROUP BY a.id
Si no te funcionara esto, metele otro nivel:
SELECT t1.ru-t2.ru,t1.rg-t2.rg FROM(
Select ru,rg From(
SELECT a.id,
SUM(c.cantidadD) as ru,
SUM(c.gradosD) as rg
FROM tbl_almacen a
INNER JOIN tbl_movimiento b ON b.id_destino = a.id
INNER JOIN tbl_vale c ON c.id_movimiento = b.id
WHERE (c.id_vendimia = @prVendimia)
AND (c.noSemana < @prSemana)
GROUP BY a.id,a.nombre_contenido,a.unidades,a.grados) t1
UNION
Select ru,rg From(
SELECT a.id,
SUM(e.cantidadO) as ru,
SUM(e.gradosO) as rg
FROM tbl_almacen a
INNER JOIN tbl_movimiento d ON d.id_origen = a.id
INNER JOIN tbl_vale e ON e.id_movimiento = d.id
WHERE (e.id_vendimia = @prVendimia)
AND (e.noSemana < @prSemana)
GROUP BY a.id,a.nombre_contenido,a.unidades,a.grados) t2)
Espero que te oriente.
salu2 |