<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Problemas com UNION in Forum em português</title>
    <link>https://communities.sas.com/t5/Forum-em-portugu%C3%AAs/Problemas-com-UNION/m-p/834344#M1159</link>
    <description>&lt;P&gt;Olá,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Perdão pelo tempo da resposta, espero que já tenhas resolvido!&lt;/P&gt;&lt;P&gt;Se não, tenho duas considerações para lhe ajudar:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;1. Você está transferindo um código do SQL &lt;STRONG&gt;antes&lt;/STRONG&gt; desse código, isso? Pois suas bases no &lt;EM&gt;subselect&lt;/EM&gt; estão apontando seu repositório temporário no SAS (WORK.MAPA_FATURA e WORK.RESUMO_MANUAL). Por isso sugeri em ajustar elas antes (no &lt;EM&gt;select&lt;/EM&gt; de importação) e depois "apenas juntar" elas já tratadas (com o DATA SET que mencione no post anterior)!&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;2. Quanto ao &lt;EM&gt;&lt;STRONG&gt;union&lt;/STRONG&gt;&lt;/EM&gt;, teste dessa forma para ver se resolve:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;&lt;CODE class=""&gt;PROC SQL;
CREATE TABLE corp_union AS
SELECT 
	num_ano_mes_referencia as Ano_Mes ,
	cod_ciclo_faturamento as ciclo,
	CASE	WHEN browsing = 1 and ('Serviço Detalhado'n = "Dados Pacote" or 'Serviço Detalhado'n = "Dados Extra Pacote") and num_ano_mes_referencia&amp;gt;= 202004 THEN "Browsing"
		WHEN browsing = 1 and num_ano_mes_referencia &amp;lt;202004 THEN "Browsing"
		WHEN 'Serviço Detalhado'n IN("Dados Pacote","Dados Extra Pacote","SMS/MMS","Descontos VAS") THEN "Grupo Smart"
		WHEN conta = "M201065170" THEN "Provider Ebook"
		ELSE 'Serviço Detalhado'n
	END as servico_ajustado,
	'Serviço Detalhado'n,
	Vlr_final,
	Sr_acounting,
	fat_consumer
FROM
	(
	SELECT
		num_ano_mes_referencia,
		cod_ciclo_faturamento,
		conta,
		'Serviço Detalhado'n,
		Browsing,
		fat_consumer,
		Sr_acounting,
		vlr_final
	FROM WORK.MAPA_FATURA
	WHERE fat_consumer &amp;lt;&amp;gt; 1 and Vlr_final &amp;lt;&amp;gt; 0 and num_ano_mes_referencia = 202207

	/*UNION*/ OUTER UNION CORR 

	SELECT 
		num_ano_mes_referencia,
		cod_ciclo_faturamento,
		conta,
		'Serviço Detalhado'n,
		browsing,
		COALESCE(fat_consumer, fat_consumer,0) as fat_consumer,
		COALESCE(sr_acounting ,sr_acounting,0) as sr_acounting,
		vlr_final
	FROM WORK.RESUMO_MANUAL
	WHERE Vlr_final &amp;lt;&amp;gt; 0 and num_ano_mes_referencia = 202207
	) i
;QUIT;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Obs.:&lt;/P&gt;&lt;P&gt;* Seu &lt;EM&gt;Case When&lt;/EM&gt; final tem alguns tratamentos com dados tipo texto (usando o IN) onde deve-se ter extrema cautela pois qq caractere diferente (maiúsculo, minúsculo, espaço em branco, etc) vai sair do loop e ir parar no &lt;EM&gt;Else.&lt;/EM&gt; Recomendo ajustar esse ponto para variável categórica ou chave primária para sua validação.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Espero que ajude,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Tue, 20 Sep 2022 18:01:44 GMT</pubDate>
    <dc:creator>hZomer</dc:creator>
    <dc:date>2022-09-20T18:01:44Z</dc:date>
    <item>
      <title>Problemas com UNION</title>
      <link>https://communities.sas.com/t5/Forum-em-portugu%C3%AAs/Problemas-com-UNION/m-p/832062#M1155</link>
      <description>&lt;P&gt;Olá,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Estou passando um código do SQL Server Managament para o SAS Guide, porém estou tendo problemas no Union.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;O Valor que o SAS gera é bem diferente do que SQL traz, vem bem mais abaixo, alguém consegue me ajudar? Abaixo estou colocando o codigo que criei.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;PROC SQL;&lt;BR /&gt;CREATE TABLE corp_union AS&lt;BR /&gt;SELECT num_ano_mes_referencia as Ano_Mes ,&lt;BR /&gt;cod_ciclo_faturamento as ciclo,&lt;BR /&gt;CASE&lt;BR /&gt;WHEN browsing = 1 and ('Serviço Detalhado'n = "Dados Pacote" or 'Serviço Detalhado'n = "Dados Extra Pacote") and num_ano_mes_referencia&amp;gt;= 202004 THEN "Browsing"&lt;BR /&gt;WHEN browsing = 1 and num_ano_mes_referencia &amp;lt;202004 THEN "Browsing"&lt;BR /&gt;WHEN 'Serviço Detalhado'n IN("Dados Pacote","Dados Extra Pacote","SMS/MMS","Descontos VAS") THEN "Grupo Smart"&lt;BR /&gt;WHEN conta = "M201065170" THEN "Provider Ebook"&lt;BR /&gt;ELSE 'Serviço Detalhado'n&lt;BR /&gt;END as servico_ajustado,&lt;BR /&gt;'Serviço Detalhado'n,&lt;BR /&gt;Vlr_final,&lt;BR /&gt;Sr_acounting,&lt;BR /&gt;fat_consumer&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;FROM&lt;BR /&gt;(select num_ano_mes_referencia&lt;BR /&gt;,cod_ciclo_faturamento&lt;BR /&gt;,conta&lt;BR /&gt;, 'Serviço Detalhado'n&lt;BR /&gt;,Browsing&lt;BR /&gt;,fat_consumer&lt;BR /&gt;,Sr_acounting&lt;BR /&gt;,vlr_final&lt;BR /&gt;FROM WORK.MAPA_FATURA&lt;BR /&gt;WHERE fat_consumer &amp;lt;&amp;gt; 1 and Vlr_final &amp;lt;&amp;gt; 0 and num_ano_mes_referencia = 202207&lt;/P&gt;&lt;P&gt;UNION&lt;/P&gt;&lt;P&gt;SELECT num_ano_mes_referencia&lt;BR /&gt;,cod_ciclo_faturamento&lt;BR /&gt;,conta&lt;BR /&gt;,'Serviço Detalhado'n&lt;BR /&gt;,browsing&lt;BR /&gt;,COALESCE(fat_consumer, fat_consumer,0) as fat_consumer&lt;BR /&gt;,COALESCE(sr_acounting ,sr_acounting,0) as sr_acounting&lt;BR /&gt;,vlr_final&lt;BR /&gt;&lt;BR /&gt;FROM WORK.RESUMO_MANUAL&lt;BR /&gt;WHERE Vlr_final &amp;lt;&amp;gt; 0&lt;BR /&gt;and num_ano_mes_referencia = 202207) i ;&lt;BR /&gt;QUIT;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 06 Sep 2022 22:21:25 GMT</pubDate>
      <guid>https://communities.sas.com/t5/Forum-em-portugu%C3%AAs/Problemas-com-UNION/m-p/832062#M1155</guid>
      <dc:creator>phmar</dc:creator>
      <dc:date>2022-09-06T22:21:25Z</dc:date>
    </item>
    <item>
      <title>Re: Problemas com UNION</title>
      <link>https://communities.sas.com/t5/Forum-em-portugu%C3%AAs/Problemas-com-UNION/m-p/832068#M1156</link>
      <description>Tenta referenciar todas as colunas com o aliás de referência.&lt;BR /&gt;&lt;BR /&gt;Digo não deixar só &lt;BR /&gt;&lt;BR /&gt;SELECT&lt;BR /&gt;vlr&lt;BR /&gt;FROM Tabela&lt;BR /&gt;&lt;BR /&gt;Tenta usar assim para todos&lt;BR /&gt;&lt;BR /&gt;SELECT&lt;BR /&gt;t1.*&lt;BR /&gt;FROM Tabela t1</description>
      <pubDate>Wed, 07 Sep 2022 02:07:12 GMT</pubDate>
      <guid>https://communities.sas.com/t5/Forum-em-portugu%C3%AAs/Problemas-com-UNION/m-p/832068#M1156</guid>
      <dc:creator>OliveiraMiguelZ</dc:creator>
      <dc:date>2022-09-07T02:07:12Z</dc:date>
    </item>
    <item>
      <title>Re: Problemas com UNION</title>
      <link>https://communities.sas.com/t5/Forum-em-portugu%C3%AAs/Problemas-com-UNION/m-p/832203#M1157</link>
      <description>&lt;P&gt;Olá,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Experimente usar o &lt;STRONG&gt;OUTER UNION CORR&lt;/STRONG&gt; ali dentro do subselect, ao invés do union puro.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Uma dica é vc "quebrar" esse subselect em duas procs e depois fazer um proc data simples, assim:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;data work.BASE_FIM;&lt;BR /&gt;set&amp;nbsp;&amp;nbsp;&amp;nbsp; work.BASE_1&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; work.BASE_2&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; ...&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; work.BASE_n;&lt;BR /&gt;run;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Espero que ajude,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 07 Sep 2022 18:38:26 GMT</pubDate>
      <guid>https://communities.sas.com/t5/Forum-em-portugu%C3%AAs/Problemas-com-UNION/m-p/832203#M1157</guid>
      <dc:creator>hZomer</dc:creator>
      <dc:date>2022-09-07T18:38:26Z</dc:date>
    </item>
    <item>
      <title>Re: Problemas com UNION</title>
      <link>https://communities.sas.com/t5/Forum-em-portugu%C3%AAs/Problemas-com-UNION/m-p/832416#M1158</link>
      <description>&lt;P&gt;Usar o&amp;nbsp;&lt;STRONG&gt;OUTER UNION CORR &lt;/STRONG&gt;aonde?&lt;/P&gt;&lt;P&gt;não posso apendar unir as bases, to transferindo um codigo do SQL para SAS por isso preciso bater os valores&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 08 Sep 2022 21:15:37 GMT</pubDate>
      <guid>https://communities.sas.com/t5/Forum-em-portugu%C3%AAs/Problemas-com-UNION/m-p/832416#M1158</guid>
      <dc:creator>phmar</dc:creator>
      <dc:date>2022-09-08T21:15:37Z</dc:date>
    </item>
    <item>
      <title>Re: Problemas com UNION</title>
      <link>https://communities.sas.com/t5/Forum-em-portugu%C3%AAs/Problemas-com-UNION/m-p/834344#M1159</link>
      <description>&lt;P&gt;Olá,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Perdão pelo tempo da resposta, espero que já tenhas resolvido!&lt;/P&gt;&lt;P&gt;Se não, tenho duas considerações para lhe ajudar:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;1. Você está transferindo um código do SQL &lt;STRONG&gt;antes&lt;/STRONG&gt; desse código, isso? Pois suas bases no &lt;EM&gt;subselect&lt;/EM&gt; estão apontando seu repositório temporário no SAS (WORK.MAPA_FATURA e WORK.RESUMO_MANUAL). Por isso sugeri em ajustar elas antes (no &lt;EM&gt;select&lt;/EM&gt; de importação) e depois "apenas juntar" elas já tratadas (com o DATA SET que mencione no post anterior)!&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;2. Quanto ao &lt;EM&gt;&lt;STRONG&gt;union&lt;/STRONG&gt;&lt;/EM&gt;, teste dessa forma para ver se resolve:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;&lt;CODE class=""&gt;PROC SQL;
CREATE TABLE corp_union AS
SELECT 
	num_ano_mes_referencia as Ano_Mes ,
	cod_ciclo_faturamento as ciclo,
	CASE	WHEN browsing = 1 and ('Serviço Detalhado'n = "Dados Pacote" or 'Serviço Detalhado'n = "Dados Extra Pacote") and num_ano_mes_referencia&amp;gt;= 202004 THEN "Browsing"
		WHEN browsing = 1 and num_ano_mes_referencia &amp;lt;202004 THEN "Browsing"
		WHEN 'Serviço Detalhado'n IN("Dados Pacote","Dados Extra Pacote","SMS/MMS","Descontos VAS") THEN "Grupo Smart"
		WHEN conta = "M201065170" THEN "Provider Ebook"
		ELSE 'Serviço Detalhado'n
	END as servico_ajustado,
	'Serviço Detalhado'n,
	Vlr_final,
	Sr_acounting,
	fat_consumer
FROM
	(
	SELECT
		num_ano_mes_referencia,
		cod_ciclo_faturamento,
		conta,
		'Serviço Detalhado'n,
		Browsing,
		fat_consumer,
		Sr_acounting,
		vlr_final
	FROM WORK.MAPA_FATURA
	WHERE fat_consumer &amp;lt;&amp;gt; 1 and Vlr_final &amp;lt;&amp;gt; 0 and num_ano_mes_referencia = 202207

	/*UNION*/ OUTER UNION CORR 

	SELECT 
		num_ano_mes_referencia,
		cod_ciclo_faturamento,
		conta,
		'Serviço Detalhado'n,
		browsing,
		COALESCE(fat_consumer, fat_consumer,0) as fat_consumer,
		COALESCE(sr_acounting ,sr_acounting,0) as sr_acounting,
		vlr_final
	FROM WORK.RESUMO_MANUAL
	WHERE Vlr_final &amp;lt;&amp;gt; 0 and num_ano_mes_referencia = 202207
	) i
;QUIT;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Obs.:&lt;/P&gt;&lt;P&gt;* Seu &lt;EM&gt;Case When&lt;/EM&gt; final tem alguns tratamentos com dados tipo texto (usando o IN) onde deve-se ter extrema cautela pois qq caractere diferente (maiúsculo, minúsculo, espaço em branco, etc) vai sair do loop e ir parar no &lt;EM&gt;Else.&lt;/EM&gt; Recomendo ajustar esse ponto para variável categórica ou chave primária para sua validação.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Espero que ajude,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 20 Sep 2022 18:01:44 GMT</pubDate>
      <guid>https://communities.sas.com/t5/Forum-em-portugu%C3%AAs/Problemas-com-UNION/m-p/834344#M1159</guid>
      <dc:creator>hZomer</dc:creator>
      <dc:date>2022-09-20T18:01:44Z</dc:date>
    </item>
  </channel>
</rss>

