Ver Mensaje Individual
  #1 (permalink)  
Antiguo 16/03/2011, 16:07
yera2002
 
Fecha de Ingreso: agosto-2007
Mensajes: 268
Antigüedad: 16 años, 9 meses
Puntos: 2
Ayuda con consulta

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...