Consulta de sintaxis SQL

Hola! A ver si algún experto puede echarme un cable con el problema que planteo,
Tengo lo siguiente :
Tabla 1 -> Compras
Tabla 2 -> Ventas
En ambas tablas tengo un campo Id que define el articulo, y necesito hacer una SQL que me devuelva en una sola consulta las unidades compradas y las unidades vendidas, he probado con un inner, ¿pero para uno de los valores automáticamente me duplica el valor por el numero de registros... Podéis echarme un cable? ¿Un inner es lo correcto?
SELECT   ven.id,  sum(ven.canti),  compra.id,  sum(compra.cantid)  FROM ven  inner  JOIN compra ON
ven.id = compr.id group by ven.id, compra.cantid
Gracias!

1 Respuesta

Respuesta
1
SELECT   ven.id,  sum(ven.canti)  FROM ven 
where ven.id in(SELECT    compra.id  FROM  compra)
group by ven.id
union
SELECT    compra.id,  sum(compra.cantid)  FROM  compra ON 
where ven.id in(SELECT   ven.id  FROM ven)
group by compra.id
/*Lamentablemente la performance decrece un poco en vez de in puedes usar el exists para agilizar la consulta*/

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas