Select Distinct MovCliente.Codigo AS CODIGO, MovCliente.Contribuinte AS CONTRIBUINTE, MovCliente.Descricao AS DESCRICAO, MovCliente.Morada, MovCliente.Local , MovCliente.CodPostal, MovCliente.Pais from MovCliente With (NoLock) Inner Join Clientes With (NoLock) on Clientes.Codigo=MovCliente.Codigo Where ( Clientes.Diversos=1 or (Select Count(Distinct MovCli.Contribuinte) from MovCliente as MovCli With (NoLock) Where MovCli.Codigo = MovCliente.Codigo and ((MovCli.Data>='2021-04-01' and MovCli.Data <='2021-04-30') or (MovCli.DataPrint>='2021-04-01' and MovCli.DataPrint<='2021-04-30')) ) > 1 or (MovCliente.Pais <> Clientes.Pais or MovCliente.Contribuinte <> Clientes.Contribuinte) ) and ((MovCliente.Data>='2021-04-01' and MovCliente.Data <='2021-04-30') or (MovCliente.DataPrint>='2021-04-01' and MovCliente.DataPrint<='2021-04-30' )) and (MovCliente.CustomerID='' or MovCliente.CustomerID is null) and IsNull(MovCliente.Contribuinte,'') <> '' and isnull(movcliente.estado,'N')='N' Union SELECT DISTINCT LOG_MOVCLIENTE.CODIGO AS CODIGO, LOG_MOVCLIENTE.CONTRIBUINTE AS CONTRIBUINTE, LOG_MOVCLIENTE.DESCRICAO AS DESCRICAO, LOG_MOVCLIENTE.MORADA, LOG_MOVCLIENTE.LOCAL , LOG_MOVCLIENTE.CODPOSTAL, LOG_MOVCLIENTE.PAIS FROM LOG_MOVCLIENTE WITH (NOLOCK) INNER JOIN CLIENTES WITH (NOLOCK) ON CLIENTES.CODIGO=LOG_MOVCLIENTE.CODIGO WHERE ( CLIENTES.DIVERSOS=1 OR (SELECT COUNT(DISTINCT MOVCLI.CONTRIBUINTE) FROM LOG_MOVCLIENTE AS MOVCLI WITH (NOLOCK) WHERE MOVCLI.CODIGO = LOG_MOVCLIENTE.CODIGO AND ((MOVCLI.DATA>='2021-04-01' AND MOVCLI.DATA <='2021-04-30') OR (MOVCLI.DATAPRINT>='2021-04-01' AND MOVCLI.DATAPRINT<='2021-04-30')) ) > 1 OR (LOG_MOVCLIENTE.PAIS <> CLIENTES.PAIS OR LOG_MOVCLIENTE.CONTRIBUINTE <> CLIENTES.CONTRIBUINTE) ) AND ((LOG_MOVCLIENTE.DATA>='2021-04-01' AND LOG_MOVCLIENTE.DATA <='2021-04-30') OR (LOG_MOVCLIENTE.DATAPRINT>='2021-04-01' AND LOG_MOVCLIENTE.DATAPRINT<='2021-04-30' )) AND (LOG_MOVCLIENTE.CUSTOMERID='' OR LOG_MOVCLIENTE.CUSTOMERID IS NULL) AND ISNULL(LOG_MOVCLIENTE.CONTRIBUINTE,'') <> '' AND ISNULL(LOG_MOVCLIENTE.ESTADO,'A')='A' Union Select Distinct MovProcessos.Entidade AS CODIGO, MovProcessos.Contribuinte AS CONTRIBUINTE, MovProcessos.Descricao AS DESCRICAO, MovProcessos.Morada, MovProcessos.Localidade AS Local , MovProcessos.CodPostal, MovProcessos.Pais from MovProcessos With (NoLock) Inner Join Clientes With (NoLock) on Clientes.Codigo=MovProcessos.Entidade Where ( Clientes.Diversos = 1 or (Select Count(Distinct MovCli.Contribuinte) from MovProcessos as MovCli With (NoLock) Where MovCli.Entidade = MovProcessos.Entidade and MovCli.Data>='2021-04-01' and MovCli.Data <='2021-04-30') > 1 or (MovProcessos.Pais <> Clientes.Pais or MovProcessos.Contribuinte <> Clientes.Contribuinte) ) and MovProcessos.Data>='2021-04-01' and MovProcessos.Data <='2021-04-30' and (MovProcessos.CustomerID='' or MovProcessos.CustomerID is null) and IsNull(MovProcessos.Contribuinte,'') <> '' order by Codigo, Contribuinte,Descricao