none
Mesma linha RRS feed

  • Pergunta

  • Bom dia! Prezados, saude a paz para todos, preciso da cordial ajuda de voces, a SQL abaixo meu preciso que me retorne os dados na mesma linha, estou usando UNION ALL

    Resultado 

    ID     DATA_LEAD IDSTATUS_LEAD LEAD DATA_SUSPECT IDSTATUS_SUSPECT SUSPECT
    11509   NULL          NULL                 NULL         30/06/2020        3                  PROSPECT
    11509  14/07/2020  1                         LEAD NULL                     NULL                  NULL

    Resultado Esperado 
    ID     DATA_LEAD IDSTATUS_LEAD LEAD DATA_SUSPECT IDSTATUS_SUSPECT SUSPECT
    11509   14/07/2020           1                 LEAD 30/06/2020        3                  PROSPECT

    SQL 

    SELECT 
    OPORT.ID,
    OPORT.DATA_LEAD,
    OPORT.IDSTATUS_LEAD,
    OPORT.LEAD,
    OPORT.DATA_SUSPECT,
    OPORT.IDSTATUS_SUSPECT,
    OPORT.SUSPECT

    FROM 
    (
    select 
    IOP.ID, 
    CONVERT(varchar,ICS.DATAINICIO , 103)   AS 'DATA_LEAD',
    IST.ID AS 'IDSTATUS_LEAD', 
    IST.NOMESTATUS AS 'LEAD',
    NULL  AS 'DATA_SUSPECT',
    NULL  AS 'IDSTATUS_SUSPECT', 
    NULL  AS 'SUSPECT'

    from SRVBD.CRM.dbo.IXCCLIENTE IC (nolock)
    left outer join SRVBD.CRM.dbo.IXCOPORTUNIDADE IOP (nolock)
    ON(IC.CODIGO = iop.CODIGOCLIENTE)
    left outer join IXCSTATUSOPORTUNIDADE ISO (nolock)
    ON(iop.IDSTATUSOP = ISO.ID)
    left outer join SRVBD.CorporeRM.dbo.XEMPREENDIMENTO XE (nolock)
    ON(IOP.COD_PESS_EMPR = XE.COD_PESS_EMPR)
    Left outer join SRVBD.CRM.dbo.IXCVINCULOSTATUSCLIENTE ICS (nolock)
    ON(IC.CODIGO = ICS.CODIGOCLIENTE
    -- and ICS.DATAFIM is null
    and (ICS.COD_PESS_EMPR = IOP.COD_PESS_EMPR
    or ICS.COD_PESS_EMPR is null
    or ICS.COD_PESS_EMPR = 0))
    left outer join SRVBD.CRM.dbo.IXCSTATUSCLIENTE IST (nolock)
    ON(ICS.IDSTATUS = IST.ID)
    left outer join SRVBD.CRM.dbo.IXCFICHAATENDIMENTO IFI (nolock)
    ON(iop.ID = IFI.IDOPORTUNIDADE)

    left outer join SRVBD.CRM.dbo.IXCATENDIMENTO IAT (nolock)
    ON(iop.ID = IAT.IDOPORTUNIDADE)





    where 
    IC.CODIGO IS NOT NULL
    AND  IOP.ID IS NOT NULL
    AND XE.COD_PESS_EMPR IS NOT NULL

    AND   IOP.ID = '11509'

    AND IST.ID = '1'

    UNION ALL

    select 
    IOP.ID, 

    NULL  AS 'DATA_LEAD',
    NULL  AS 'IDSTATUS_LEAD', 
    NULL  AS 'LEAD',

    CONVERT(varchar,ICS.DATAINICIO , 103)   AS 'DATA_SUSPECT',
    IST.ID AS 'IDSTATUS_SUSPECT', 
    IST.NOMESTATUS AS 'SUSPECT'





    from SRVBD.CRM.dbo.IXCCLIENTE IC (nolock)
    left outer join SRVBD.CRM.dbo.IXCOPORTUNIDADE IOP (nolock)
    ON(IC.CODIGO = iop.CODIGOCLIENTE)
    left outer join IXCSTATUSOPORTUNIDADE ISO (nolock)
    ON(iop.IDSTATUSOP = ISO.ID)
    left outer join SRVBD.CorporeRM.dbo.XEMPREENDIMENTO XE (nolock)
    ON(IOP.COD_PESS_EMPR = XE.COD_PESS_EMPR)
    Left outer join SRVBD.CRM.dbo.IXCVINCULOSTATUSCLIENTE ICS (nolock)
    ON(IC.CODIGO = ICS.CODIGOCLIENTE
    -- and ICS.DATAFIM is null
    and (ICS.COD_PESS_EMPR = IOP.COD_PESS_EMPR
    or ICS.COD_PESS_EMPR is null
    or ICS.COD_PESS_EMPR = 0))
    left outer join SRVBD.CRM.dbo.IXCSTATUSCLIENTE IST (nolock)
    ON(ICS.IDSTATUS = IST.ID)
    left outer join SRVBD.CRM.dbo.IXCFICHAATENDIMENTO IFI (nolock)
    ON(iop.ID = IFI.IDOPORTUNIDADE)

    left outer join SRVBD.CRM.dbo.IXCATENDIMENTO IAT (nolock)
    ON(iop.ID = IAT.IDOPORTUNIDADE)





    where 
    IC.CODIGO IS NOT NULL
    AND  IOP.ID IS NOT NULL
    AND XE.COD_PESS_EMPR IS NOT NULL
    AND   IOP.ID = '11509'

    AND IST.ID = '3'


    )
    OPORT
    (
    ID,
    DATA_LEAD,
    IDSTATUS_LEAD,
    LEAD,
    DATA_SUSPECT,
    IDSTATUS_SUSPECT,
    SUSPECT

    )
    GROUP BY 
    ID,
    DATA_LEAD,
    IDSTATUS_LEAD,
    LEAD,
    DATA_SUSPECT,
    IDSTATUS_SUSPECT,
    SUSPECT

    Obrigado

    quarta-feira, 25 de novembro de 2020 12:46

Respostas

  • Bom dia,

    Segue uma sugestão para testes:

    select 
      IOP.ID, 
      CONVERT(varchar, max(case when IST.ID = 1 then ICS.DATAINICIO end), 103) AS 'DATA_LEAD',
      max(case when IST.ID = 1 then IST.ID end) AS 'IDSTATUS_LEAD', 
      max(case when IST.ID = 1 then IST.NOMESTATUS end) AS 'LEAD',
      CONVERT(varchar, max(case when IST.ID = 3 then ICS.DATAINICIO end), 103) AS 'DATA_SUSPECT',
      max(case when IST.ID = 3 then IST.ID end) AS 'IDSTATUS_SUSPECT', 
      max(case when IST.ID = 3 then IST.NOMESTATUS end) AS 'SUSPECT'
    from SRVBD.CRM.dbo.IXCCLIENTE IC (nolock)
    left outer join SRVBD.CRM.dbo.IXCOPORTUNIDADE IOP (nolock)
      ON IC.CODIGO = iop.CODIGOCLIENTE
    left outer join IXCSTATUSOPORTUNIDADE ISO (nolock)
      ON iop.IDSTATUSOP = ISO.ID
    left outer join SRVBD.CorporeRM.dbo.XEMPREENDIMENTO XE (nolock)
      ON IOP.COD_PESS_EMPR = XE.COD_PESS_EMPR
    Left outer join SRVBD.CRM.dbo.IXCVINCULOSTATUSCLIENTE ICS (nolock)
      ON IC.CODIGO = ICS.CODIGOCLIENTE
      -- and ICS.DATAFIM is null
      and 
        (ICS.COD_PESS_EMPR = IOP.COD_PESS_EMPR
         or ICS.COD_PESS_EMPR is null
         or ICS.COD_PESS_EMPR = 0)
    left outer join SRVBD.CRM.dbo.IXCSTATUSCLIENTE IST (nolock)
      ON ICS.IDSTATUS = IST.ID
    left outer join SRVBD.CRM.dbo.IXCFICHAATENDIMENTO IFI (nolock)
      ON iop.ID = IFI.IDOPORTUNIDADE
    left outer join SRVBD.CRM.dbo.IXCATENDIMENTO IAT (nolock)
      ON iop.ID = IAT.IDOPORTUNIDADE
    
    where 
      IC.CODIGO IS NOT NULL
      AND  IOP.ID IS NOT NULL
      AND XE.COD_PESS_EMPR IS NOT NULL
      AND   IOP.ID = '11509'
      AND IST.ID in ('1', '3')
    
    group by
      IOP.ID
    

    Espero que ajude


    Assinatura: http://www.imoveisemexposicao.com.br

    • Marcado como Resposta Ronnie Von quarta-feira, 25 de novembro de 2020 17:00
    quarta-feira, 25 de novembro de 2020 13:18

Todas as Respostas

  • Bom dia,

    Segue uma sugestão para testes:

    select 
      IOP.ID, 
      CONVERT(varchar, max(case when IST.ID = 1 then ICS.DATAINICIO end), 103) AS 'DATA_LEAD',
      max(case when IST.ID = 1 then IST.ID end) AS 'IDSTATUS_LEAD', 
      max(case when IST.ID = 1 then IST.NOMESTATUS end) AS 'LEAD',
      CONVERT(varchar, max(case when IST.ID = 3 then ICS.DATAINICIO end), 103) AS 'DATA_SUSPECT',
      max(case when IST.ID = 3 then IST.ID end) AS 'IDSTATUS_SUSPECT', 
      max(case when IST.ID = 3 then IST.NOMESTATUS end) AS 'SUSPECT'
    from SRVBD.CRM.dbo.IXCCLIENTE IC (nolock)
    left outer join SRVBD.CRM.dbo.IXCOPORTUNIDADE IOP (nolock)
      ON IC.CODIGO = iop.CODIGOCLIENTE
    left outer join IXCSTATUSOPORTUNIDADE ISO (nolock)
      ON iop.IDSTATUSOP = ISO.ID
    left outer join SRVBD.CorporeRM.dbo.XEMPREENDIMENTO XE (nolock)
      ON IOP.COD_PESS_EMPR = XE.COD_PESS_EMPR
    Left outer join SRVBD.CRM.dbo.IXCVINCULOSTATUSCLIENTE ICS (nolock)
      ON IC.CODIGO = ICS.CODIGOCLIENTE
      -- and ICS.DATAFIM is null
      and 
        (ICS.COD_PESS_EMPR = IOP.COD_PESS_EMPR
         or ICS.COD_PESS_EMPR is null
         or ICS.COD_PESS_EMPR = 0)
    left outer join SRVBD.CRM.dbo.IXCSTATUSCLIENTE IST (nolock)
      ON ICS.IDSTATUS = IST.ID
    left outer join SRVBD.CRM.dbo.IXCFICHAATENDIMENTO IFI (nolock)
      ON iop.ID = IFI.IDOPORTUNIDADE
    left outer join SRVBD.CRM.dbo.IXCATENDIMENTO IAT (nolock)
      ON iop.ID = IAT.IDOPORTUNIDADE
    
    where 
      IC.CODIGO IS NOT NULL
      AND  IOP.ID IS NOT NULL
      AND XE.COD_PESS_EMPR IS NOT NULL
      AND   IOP.ID = '11509'
      AND IST.ID in ('1', '3')
    
    group by
      IOP.ID
    

    Espero que ajude


    Assinatura: http://www.imoveisemexposicao.com.br

    • Marcado como Resposta Ronnie Von quarta-feira, 25 de novembro de 2020 17:00
    quarta-feira, 25 de novembro de 2020 13:18
  • Muito obrigado pela ajuda, seu certo.

    Meus parabéns 

    quarta-feira, 25 de novembro de 2020 17:00