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
ALTER PROCEDURE [dbo].[sp_gasto_acumulado_por_departamento] @mes INT, @folio INT, @anio INT AS BEGIN SELECT tbl_partidas_1.departamento, SUM(tbl_partidas_1.total_dolares) AS total_gasto FROM tbl_datos_generales FULL OUTER JOIN tbl_partidas AS tbl_partidas_1 ON tbl_datos_generales.id = tbl_partidas_1.folio WHERE (tbl_datos_generales.estado <> N'NVA') AND (tbl_datos_generales.estado <> N'REC') AND (tbl_datos_generales.estado <> N'CAN') AND (tbl_datos_generales.estado <> N'APR') AND (MONTH(tbl_datos_generales.fecha_estimada_recepcion) = @mes) AND (YEAR(tbl_datos_generales.fecha_estimada_recepcion) = @anio) AND (tbl_partidas_1.departamento IN (SELECT departamento FROM tbl_partidas AS tbl_partidas WHERE (folio = @folio) GROUP BY departamento)) GROUP BY tbl_partidas_1.departamento 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