none
multi-part identifier - Erro ao executar Query com UNION RRS feed

  • Pergunta

  • Boa noite!

    Estou recebendo o seguinte erro ao executar a query:

    SELECT movel.raiz, movel.total_movel FROM #linha_movel AS movel UNION SELECT m2m.raiz, m2m.total_m2m FROM #linha_m2m AS m2mWHERE movel.raiz = movel.m2m

    Erro:Msg 4104, Level 16, State 1, Line 12The multi-part identifier "movel.raiz" could not be bound.Msg 4104, Level 16, State 1, Line 12The multi-part identifier "movel.m2m" could not be bound.

    Estou coletando dados de uma mesma tabela, e salvando em duas tabelas temporárias.

    /*Tabela temporária #linha_movel*/SELECT raiz, COUNT('access_nbr') AS total_movel INTO #linha_movel FROM carga_clientes_20180208WHERE sali_access_svc_flag = 'Y' AND svc_name NOT LIKE '%M2M%'GROUP BY raiz/*Tabela temporaria #linha_m2m*/SELECT raiz, COUNT('access_nbr') AS total_m2m INTO #linha_m2m FROM carga_clientes_20180208WHERE sali_access_svc_flag = 'Y' AND svc_name LIKE '%M2M%'GROUP BY raiz

    Preciso fazer a união através das raízes, informando total_movel e total_m2m que separei em tabelas temporárias, mesmo que a raiz não contenha um dos totais.

    Atenciosamente,

    terça-feira, 20 de fevereiro de 2018 03:18

Respostas

Todas as Respostas

  • Deleted
    terça-feira, 20 de fevereiro de 2018 10:26
  • Boa tarde, José. Obrigado pela força.

    No segundo caso, só consegui retornar algum resultado, removendo os primeiros Counts. Porém, o retorno mostra a contagem individual de cada tipo (linha_m2m ou linha_movel).

    Necessito que retorne quantas linhas_m2m E linhas_moveis contem cada raiz.

    Editei a Query para buscar esse resultado, o SQL Managment não acusa linha com erro, porém, ocorre o seguinte erro na execução:

    Msg 130, Level 15, State 1, Line 6
    Cannot perform an aggregate function on an expression containing an aggregate or a subquery.

    Query:

    SELECT raiz,
    COUNT(
    CASE 
    WHEN svc_name NOT LIKE '%M2M%'
    	THEN 
    		COUNT('access_nbr') END) AS total_moveis,
    COUNT(
    CASE
    WHEN svc_name LIKE '%M2M%' 
    	THEN 
    		COUNT('access_nbr') END) AS total_m2m
    FROM carga_clientes_20180208 WHERE sali_access_svc_flag = 'Y'
    GROUP BY raiz, svc_name

    Obrigado!

    terça-feira, 20 de fevereiro de 2018 18:26
  • Deleted
    terça-feira, 20 de fevereiro de 2018 21:40
  • Boa tarde, José.

    Utilizei o primeiro código com uma pequena alteração: Criei duas Views ao invés de utilizar as Temp Tables.
    Fiz alguns pequenos ajustes no código e deu certo! Muito obrigado pela ajuda!

    quarta-feira, 21 de fevereiro de 2018 17:43
  • Deleted
    quarta-feira, 21 de fevereiro de 2018 23:26