Buenos dias,
Tengo una duda con relación a la Construcción de Modelos en Report Services.
La opción que estamos utitilizando es la construcción de un Report Model, de
forma que los usuarios finales se conecten a este y construyan sus propios
informes.
Tengo construido un Modelo en Estrella, o sea la tabla de hechos y alrededor
las dimensiones (si que va teniendo algunas cosillas de Copo de nieve, pero
es muy simple).
Mi duda es ¿Por qué me esta construyendo las consultas Report Services con
la opción de LEFT JOIN?
¿Sabes si en alguna parte de propiedades esa opción se especifica?.
Anexo el ejemplo de una consulta generada por Report Services y a
continuación la que creo más optima.
Informe donde quiero:
Código de Proyecto, Proyecto, Fecha Fin Proyecto.
SET DATEFIRST 7
SELECT DISTINCT
[VW_DM_PROJECT].[CD_PROYECTO] [CDPROYECTO],
[VW_DM_PROJECT].[PROYECTO] [PROYECTO],
[VW_DM_CRCT_TAREA].[FECHAFINPROYECTOREALFECHAFINPROYECTO]
[FECHAFINPROYECTOREALFECHAFINPROYECTO]
FROM
[dbo].[VW_DM_PROJECT] [VW_DM_PROJECT]
LEFT OUTER JOIN (
SELECT
[VW_DM_CRCT_TAREA].[DT_FIN_TAREA] [FECHAFINPROYECTOREALFECHAFINPROYECTO],
[VW_DM_CRCT_TAREA].[PROJ] [PROJ],
[VW_DM_CRCT_TAREA].[VER] [VER]
FROM
[dbo].[VW_DM_CRCT_TAREA] [VW_DM_CRCT_TAREA]
) [VW_DM_CRCT_TAREA] ON [VW_DM_PROJECT].[PROYECTO] =
[VW_DM_CRCT_TAREA].[PROJ] AND [VW_DM_PROJECT].[VERSION] =
[VW_DM_CRCT_TAREA].[VER]
LEFT OUTER JOIN (
SELECT
[VW_TIPO_PROYECTO].[CD_TIPO_PROYECTO] [TIPOPROYECTO],
[VW_TIPO_PROYECTO].[CD_TIPO_PROYECTO] [CD_TIPO_PROYECTO]
FROM
[dbo].[VW_TIPO_PROYECTO] [VW_TIPO_PROYECTO]
) [VW_TIPO_PROYECTO] ON [VW_DM_PROJECT].[CD_TIPO_PROY] =
[VW_TIPO_PROYECTO].[CD_TIPO_PROYECTO]
LEFT OUTER JOIN (
SELECT
[VW_ESTADO_PROYECTO].[CD_ESTADO_PROYECTO] [ESTADOPROYECTO],
[VW_ESTADO_PROYECTO].[CD_ESTADO_PROYECTO] [CD_ESTADO_PROYECTO]
FROM
[dbo].[VW_ESTADO_PROYECTO] [VW_ESTADO_PROYECTO]
) [VW_ESTADO_PROYECTO] ON [VW_DM_PROJECT].[CD_ESTD_PROY] =
[VW_ESTADO_PROYECTO].[CD_ESTADO_PROYECTO]
WHERE
[VW_TIPO_PROYECTO].[TIPOPROYECTO] = 'PROY_DES'
AND [VW_ESTADO_PROYECTO].[ESTADOPROYECTO] = 'PT'
ORDER BY
[CDPROYECTO], [PROYECTO], [FECHAFINPROYECTOREALFECHAFINPROYECTO]
SELECT
A.CD_PROYECTO,
A.PROYECTO,
D.DT_FIN_TAREA
FROM
dbo.VW_DM_PROJECT A INNER JOIN dbo.DM_TIPO_PROYECTO B
ON A.CD_TIPO_PROY = B.CD_TIPO_PROYECTO
INNER JOIN dbo.DM_ESTADO_PROYECTO C
ON A.CD_ESTD_PROY = C.CD_ESTADO_PROYECTO
INNER JOIN dbo.VW_DM_CRCT_TAREA D
ON A.CD_PROYECTO = D.PROJ
AND A.VERSION= D.VER
WHERE B.CD_TIPO_PROYECTO = 'PROY_DES'
AND C.CD_ESTADO_PROYECTO = 'PT'
Un Saludo, gracias
Maribel
Leer las respuestas