Reporte Oportunidades

Buen dia a todos de esta excelente comunidad,

Por favor me podrian dar una ayuda, resulta que tengo un reporte de oportunidades creado donde me trae información de varios campo, pero necesito agregarle a este otros campos como (Departamento, Ciudad,el campo Nivel de interés y etapa de la Oportunidad), resulta que tengo problemas, al generarlo si le coloco la ciudad me traen solo, si el campo ciudad esta lleno , cuando está en blanco ya sea por que nunca se lo coloco al socio de negocios no los muestra, entonces me trae por decir solo 100 registro y si lo quito si me trae los 600 registro.
Me podrian por favor ayudar

Este es mi Query

SELECT T1."SlpName" AS "COMERCIAL RESPONSABLE",
T0."CardCode" AS "CODIGO CLIENTE",
T2."CardName" AS "NOMBRE CLIENTE", 
T2."Territory" AS "DEPARTAMENTO", 
T2."U_HBT_MunMed" AS "CIUDAD", 
T0."OpenDate" AS "FECHA DE INICIO GESTIÓN",
T0."PredDate" AS "FECHA DE INICIO CONTRATO", 
T3."PymntGroup" AS "FORMA DE PAGO",
T0."MaxSumLoc" AS "VALOR PROYECTO ANTES DE IVA",
T0."MaxSumLoc" * 19 /100 AS "IVA 19%",
T0."MaxSumLoc" * 1.19 AS "VALOR TOTAL",
T0."OpprId" AS "NUMERO OPORTUNIDAD",
T0."Name" AS "NOMBRE DE OPORTUNIDAD",
T0."Industry" AS "LINEA",
T0."IntRate" AS "INTERES",
T0."Status" AS "ESTADO",
T0."CloPrcnt" /1 "% DE CIERRE",
T0."StepLast" AS "ETAPA" FROM "ELECTROEQUIPOS_DM"."OOPR"  T0 INNER JOIN "ELECTROEQUIPOS_DM"."OSLP"  T1 ON T0."SlpCode" = T1."SlpCode" INNER JOIN "ELECTROEQUIPOS_DM"."OCRD"  T2 ON T0."CardCode" = T2."CardCode" INNER JOIN "ELECTROEQUIPOS_DM"."OCTG"  T3 ON T2."GroupNum" = T3."GroupNum"

A espera de su pronta respuesta

Gracias

Buen día, utiliza left o right join dependiendo de tu necesidad, para que te traiga todos los datos no solo los que tengas llenos, con el ej que das de la ciudad, te traería todos los registros incluso si no viene nada, que me imagino que quieres traer de la OCRD.

Saludos.

Buen Dia, prueba con el siguiente código:

T1.SlpName AS "COMERCIAL RESPONSABLE",
   T0.CardCode AS "CODIGO CLIENTE",
   T2.CardName AS "NOMBRE CLIENTE", 
   T2.Territory AS "DEPARTAMENTO", 
   T2.U_HBT_MunMed AS "CIUDAD", 
   T0.OpenDate AS "FECHA DE INICIO GESTIÓN",
   T0.PredDate AS "FECHA DE INICIO CONTRATO", 
   T3.PymntGroup AS "FORMA DE PAGO",
   T0.MaxSumLoc AS "VALOR PROYECTO ANTES DE IVA",
   T0.MaxSumLoc * 19 /100 AS "IVA 19%",
   T0.MaxSumLoc * 1.19 AS "VALOR TOTAL",
   T0.OpprId AS "NUMERO OPORTUNIDAD",
   T0.Name AS "NOMBRE DE OPORTUNIDAD",
   T0.Industry AS "LINEA",
   T0.IntRate AS "INTERES",
   T0.Status AS "ESTADO",
   T0.CloPrcnt /1 "% DE CIERRE",
   T0.StepLast AS "ETAPA" 
FROM OOPR  T0 
   INNER JOIN OSLP  T1 ON T0.SlpCode =  T1.SlpCode 
   LEFT JOIN  OCRD  T2 ON T0.CardCode = T2.CardCode 
   INNER JOIN OCTG  T3 ON T2.GroupNum = T3.GroupNum

Saludos, espero sea lo que estas requiriendo.

Prueba usando la funcion ISNUL:

ISNULL(T2.U_HBT_MunMed,’’) AS “CIUDAD”,

Buen dia a todos,

Gracias a cada uno por tomarse el tiempo de responder, tome las sugerencias de cada uno, ya veo las ciudades, pero resulta que apenas le agregue la columna se pierden registros, por ejemplo actualmente antes de me muestra 600 oportunidades, pero en el momento de agregarle el campo ciudad, me queda el reporte en 200 oportunidades, es como si lo filtrara y se pierden.

Les agradezco inmensamente su valiosa sabiduría

Gracias

Buen día, te paso el código que utilice para un reporte que necesitaba de las oportunidades, por si te sirve de algo. Saludos!

Select R2.Line , R1.OpprId, R1.OpenDate Fecha, R1.SlpCode, R4.SlpName, R1.CardName, R1.Memo Observaciones, R1.Name Activos, R2.OpenDate, 
R2.CloseDate, R2.Step_Id, R3.Descript, ISNULL(R2.Memo,'Sin comentarios') Comentarios, R5.Memo costo, 
case when R1.Source = 1 THEN 'Hormonales' 
     when R1.Source = 2 THEN 'Anestésicos' 
	 when R1.Source = 3 THEN 'Anti-Envejecimiento' END AS 'Propiedad' , 
	 case when R1.Industry = 1 then 'Magristral' when R1.Industry = 2 then 'Dermocosmético'  END AS Clasificacion 
from OOPR R1 INNER JOIN OPR1 R2 ON R1.OpprId  = R2.OpprId 
             INNER JOIN OOST R3 ON R2.Step_Id = R3.StepId
             INNER JOIN OSLP R4 ON R1.SlpCode = R4.Slpcode
             LEFT JOIN OPR3 R5 ON R1.OpprId  = R5.OpportId
-- FULL OUTER JOIN OCLG R5 ON R2.OpprId = R5.OprId AND R2.Step_Id = R5.OprId 
Where R1.OpprId = @psOportunidad --AND R5.Notes NOT LIKE ('')

Buenas tardes a todos
Gracias por sus sugerencias, estimado Willy_Caldero, gracias por la info, pero es posible que este query que te muestro a continuación se pueda ver los 600 registros, así como lo tengo solo me muestra 200,no se en donde lo está filtrando que corta la informacion, agradeceria mucho quien me pueda colaborar por favor.

SELECT T1."SlpName" AS "COMERCIAL RESPONSABLE", 
T0."CardCode" AS "CODIGO CLIENTE",
T2."CardName" AS "NOMBRE CLIENTE", 
T3."descript" AS "DEPARTAMENTO",  
T4."Name" AS "CIUDAD", 
T0."OpenDate" AS "FECHA DE INICIO GESTIÓN",
T0."PredDate" AS "FECHA DE INICIO CONTRATO", 
T5."PymntGroup" AS "FORMA DE PAGO",
T0."MaxSumLoc" AS "VALOR PROYECTO ANTES DE IVA",
T0."MaxSumLoc" * 19 /100 AS "IVA 19%",
T0."MaxSumLoc" * 1.19 AS "VALOR TOTAL",
T0."OpprId" AS "NUMERO OPORTUNIDAD", 
T0."Name" AS "NOMBRE DE OPORTUNIDAD",
T6."IndName" AS "LINEA",
T8."Descript" AS "INTERES", 
T0."Status" AS "ESTADO",
T0."CloPrcnt" /1 "% DE CIERRE", 
T7."Descript" AS "ETAPA" 
FROM "OOPR"  T0 
INNER JOIN "OSLP"  T1 ON T0."SlpCode" = T1."SlpCode" 
INNER JOIN "OCRD"  T2 ON T0."CardCode" = T2."CardCode" 
LEFT JOIN "OTER"  T3 ON T0."Territory" = T3."territryID" 
INNER JOIN "@HBT_MUNICIPIO"  T4 ON T2."U_HBT_MunMed" = T4."Code" 
INNER JOIN "OCTG"  T5 ON T2."GroupNum" = T5."GroupNum" 
INNER JOIN "OOND"  T6 ON T0."Industry" = T6."IndCode" 
INNER JOIN "OOST"  T7 ON T0."StepLast" = T7."Num" 
INNER JOIN "OOIR"  T8 ON T0."IntRate" = T8."Num"

Gracias

@GiancarloB en tu query veo demasiados INNER JOIN, deberias probar cambiarlos todos por LEFT JOIN, para que te devuelva todos los registros de la OOPR.

1 me gusta