SQL - Duda consulta subselect??

 
Vista:

Duda consulta subselect??

Publicado por Licha (1 intervención) el 11/09/2013 03:29:25
Hola!

Tengo la siguiente consulta... resulta que tengo registros de la siguiente forma (21 meses por cada articulo y deposito, que serian 12 meses del año 2012 y 9 meses actuales del año 2013)

Articulo Deposito Mes Cantidad

1 1 21 3
1 1 20 2
..
1 1 1 5
----------
1 2 21 0
1 2 20 2
..
1 2 1 5
----------
1 3 21 3
1 3 20 2
..
1 3 1 2

Lo que quiero es traer los 21 registros de aquellos articulos y depositos cuya cantidad en el mes 21 sea distinta de 0

Es decir, me tendria que devolver:

1 1 21 3
1 1 20 2
..
1 1 1 5
----------
1 3 21 3
1 3 20 2
..
1 3 1 2

Saludos! Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 806
Bronce
Ha mantenido su posición en SQL (en relación al último mes)
Gráfica de SQL

Duda consulta subselect??

Publicado por leonardo_josue (1173 intervenciones) el 11/09/2013 20:01:41
Hola Licha...

¿Qué Motor de BD estás utilizando? no nos dices eso en tu post, y eso es un problema, pues aunque la sintaxis es similar entre los distintos DBMS's también hay diferencias importantes.

Puedes hacerlo de muchas formas, la forma "estándar" sería con NOT EXISTS haciendo una subconsulta... es decir, por un lado obtienes los id's de los artículos y depositos que quieres excluir:

1
SELECT DISTINCT articulo, deposito FROM tu_tabla WHERE cantidad = 0;

esto te traerá lo siguiente:

1
2
3
4
5
6
+----------+----------+
| articulo | deposito |
+----------+----------+
|        1 |        2 |
+----------+----------+
1 row in set (0.00 sec)

Esta consulta la metes en un NOT EXISTS, de tal manera que filtre aquellos registros que no te interesa.

Haz el intento y nos comentas, si tienes problemas postea algo de lo que intentaste hacer y con gusto te ayudamos a resolver la consulta.

Saludos
Leo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar