Ver Mensaje Individual
  #1 (permalink)  
Antiguo 06/06/2013, 18:43
estlui
 
Fecha de Ingreso: noviembre-2003
Mensajes: 209
Antigüedad: 20 años, 5 meses
Puntos: 0
Resultados de subconsulta

Hola de nuevo.....

Bien dicen que la practica hace al maestro, pero cuando no tienes alguien que te oriente puedes tardar demaciado en llegar a ser maestro.... y en ocaciones el tiempo es escaso.... y es por eso que recurro de nuevo a su sabiduria en SQL y es algo que de verdad les agradezco.

Tengo este SP:

Código SQL:
Ver original
  1. ALTER PROCEDURE [dbo].[sp_gasto_acumulado_por_departamento]
  2.     @mes INT,
  3.     @folio INT,
  4.     @anio INT
  5.    
  6. AS
  7. BEGIN
  8.  
  9.     SELECT     tbl_partidas_1.departamento, SUM(tbl_partidas_1.total_dolares) AS total_gasto
  10. FROM         tbl_datos_generales FULL OUTER JOIN
  11.                       tbl_partidas AS tbl_partidas_1 ON tbl_datos_generales.id = tbl_partidas_1.folio
  12. WHERE     (tbl_datos_generales.estado <> N'NVA') AND (tbl_datos_generales.estado <> N'REC') AND (tbl_datos_generales.estado <> N'CAN') AND
  13.                       (tbl_datos_generales.estado <> N'APR') AND (MONTH(tbl_datos_generales.fecha_estimada_recepcion) = @mes) AND
  14.                       (YEAR(tbl_datos_generales.fecha_estimada_recepcion) = @anio) AND (tbl_partidas_1.departamento IN
  15.                           (SELECT     departamento
  16.                             FROM          tbl_partidas AS tbl_partidas
  17.                             WHERE      (folio = @folio)
  18.                             GROUP BY departamento))
  19. GROUP BY tbl_partidas_1.departamento
  20. END

El cual me arroja este resultado:



Este resultado esta correcto cuando en la consulta primaria existe registros del departamento 65013 y 65015, estos dos departamentos los obtengo de la subconsulta.

Pero no me arroja ningun resultado cuando no hay registros en la consulta principal que concidan con el resultado de la subconsulta.

Por ejemplo:

La subconsulta obtiene estos depas:
65013
65015

Pero en la consulta principal solo hay datos de los depas:
65013

Entonces me muestra solamnete:
depa total_gasto
65013 | 8.65

Quiero obtener este resultado, aunque en la consulta principal no tenga registros del depa 65015:

depa | total_gasto
65013 8.65
65015 0

ó en caso de que no haya registros de los dos departamentos en la consulta principla, que muestre:

depa | total_gasto
65013 0
65015 0

Espero haberme explicado, de verdad mi intencion no es que ustedes hagan el trabajo pro mi, pero mi conocimiento en SQL es basico y con consultas mas complejas me atoro.

Les comento que estoy haciendo una aplicacion para una compañia, y pues al principio era solo inserciones, actualizaciones y borrado de datos pero ahora me piden que haga cosas mas "complejas (por lo menos para mi), ya casi la termino pero este tipo de consultas me atoran.

Saludos y muchas gracias