Hola a todos:
Estoy haciendo una consulta y me atore un poco...jejeje...ojala me puedan ayudar.
Tengo 2 tablas
Tabla Principal
Id Descrip cantidad
1 Art 1 20
2 Art 2 50
Tabla Secundaria
Id id_tabla_principal cantidad Estado
1 1 -10 Pendiente
2 1 -1 Pendiente
3 1 -2 Pendiente
4 1 -2 Confirmado
5 2 -2 Pendiente
Basicamente mi consulta consiste en poder sumar la cantidad de la tabla secundaria (-13) y restarselo a la cantidad de la tabla principal y solo aquellos registros que tengan su estado en pendiente. Lo que tengo es:
SELECT
tablaprincipal.Id,
(tablaprincipal.cantidad - CASE WHEN tablasecundaria.estado = 'CON' THEN 0 ELSE sum(tablasecundaria.cantidad)END) AS 'cantidad'
FROM tablaprincipal INNER JOIN tablasecundaria ON (tablaprincipal.id = tablasecundaria.id_rollo )
WHERE tablaprincipal.id = 1
group by tablaprincipal.Id, tablaprincipal.cantidad, tablasecundaria.estado
having (tablaprincipal.cantidad - CASE WHEN tablasecundaria.estado = 'CON' THEN 0 ELSE sum(tablasecundaria.cantidad)END) <> 0
Sin embargo me regresa lo siguiente
id cantidad
1 20
2 50
1 7
2 48
Yo solo quiero encontrar los ultimos 2 registros}
saludos...