Ir para conteúdo

Alex Pereira

Alunos
  • Total de itens

    582
  • Registro em

  • Última visita

Tudo que Alex Pereira postou

  1. Você pode renomear, contudo é sempre recomendado que crie medidas ao inves de usar colunas diretas no power bi!
  2. Então no caso a empresa que você presta serviço deve ter algum servidor para armazenamento dos arquivos, você não conseguiria colocar o gateway dentro desse servidor e a partir dele fazer as atualizações do seu BI. Desta forma, você não precisaria de uma conta windows para cada, mais uma só para o servidor principal deles.
  3. Veja esse codigo: let // Definição das tabelas de exemplo Table1 = Table.FromRecords({ [A = 1, B = "x", C = 10], [A = 1, B = "y", C = 20], [A = 2, B = "x", C = 30], [A = 2, B = "y", C = 40], [A = 3, B = "x", C = 50] }), Table2 = Table.FromRecords({ [A = 1, B = "x", C = 15], [A = 1, B = "z", C = 25], [A = 2, B = "x", C = 35], [A = 2, B = "z", C = 45], [A = 3, B = "x", C = 55] }), // Combinação das duas tabelas MergedTable = Table.Combine({Table1, Table2}), // Agrupamento por coluna 'A' e aplicação das regras GroupedTable = Table.Group(MergedTable, {"A"}, { {"Result", each let GroupByB = Table.Group(_, {"B"}, {{"C_Sum", each List.Sum([C]), type number}}), C_Value = if Table.RowCount(GroupByB) > 1 then List.Average(GroupByB[C_Sum]) else List.Sum(GroupByB[C_Sum]) in [A = _[A]{0}, C = C_Value] } }), // Conversão da lista de registros em tabela ResultTable = Table.FromRecords(GroupedTable[Result]) in ResultTable Considere que: Para A = 1, temos diferentes valores de B (x, y, z), então calculamos a média de 😄 (10 + 20 + 15 + 25) / 4 = 17.5. Para A = 2, temos diferentes valores de B (x, y, z), então calculamos a média de 😄 (30 + 40 + 35 + 45) / 4 = 37.5. Para A = 3, temos o mesmo valor de B (x), então somamos 😄 50 + 55 = 105.
  4. Boooom Diaaaaa, este erro acontece geralmente quando o tempo de expera do sua query excede o tempo definido pelo power bi em alguma tabela. Para corrigir o erro, você pode: 1 - Ajustar o tempo de espera: Ajuste o tempo de espera para a consulta para um valor mais alto se necessário. 2 - Melhorar o desempenho da consulta: Ajuste a consulta para melhorar o desempenho, como usando índices, limitando a quantidade de dados retornados e otimizando a consulta. 3 - Verificar a conexão: Verifique se a conexão com o servidor SQL está estável e não está sofrendo de problemas de rede ou de servidor. 4 - Fechamento de conexões: Certifique-se de que todas as conexões estão fechadas corretamente e que o pool de conexões não está exausto. 5 - Ajustar o servidor SQL: Ajuste as configurações do servidor SQL para melhorar o desempenho, como o número de threads e a memória disponível Veja abaixo como fazer isso: https://community.fabric.microsoft.com/t5/Desktop/Query-Timeout-on-update/td-p/53459 Sujiro que coloque todas como organizacional e criptografar conexões caso tiver essa opção.
  5. Agora se tiver acessos ao banco de dados do erp já e mais facil que não precisaria do scraper que é meio que simular uma pessoa baixando relatório.
  6. O que você pode fazer é um scraper para baixar este relatória e fazer uma inserção no banco de dados via pentaho ou ferramente semelhante!
  7. Cara não sei se tem como fazer instalação, o que se pode fazer é fazer parte processo python e outra parte automate veja esse video.
  8. No seu caso se queria mostrar o faturamento do cliente naquele estado sem que você mostre o cep dele? Olha não sei se isso é possivel , porque para que você possa localizar os dados do mapa tem que ter uma coluna de localização juntamente com estado que só ele não é suficiente!
  9. Da uma olhada nesse video. basicamente terá criar uma coluna concatenada para mapa. ex: MAPA = LISTA[MUNICIPIO] & ", " & [UF] & "," & [PAÍS]
  10. Tem como disponabilizar arquivo? Pelo que vi aqui analisando, o erro parece estar em uma coluna que O erro "cannot insert Cliente, already exists" está ocorrendo porque a coluna 'Cliente' já existe no DataFrame similaridade_final_df.
  11. O ideal é realizar o ETL dentro do próprio banco de dados no SQL Server, pois isso pode oferecer maior desempenho e eficiência ao processar grandes volumes de dados. No entanto, é importante estar atento a algumas limitações e desafios, como: Concorrência no banco de dados: A realização de operações ETL pode aumentar a carga no banco de dados, afetando o desempenho das transações de produção. Isso pode resultar em lentidão para os usuários que estão acessando o banco simultaneamente. Tempo de atualização: Dependendo da complexidade do ETL, as atualizações podem demorar, afetando a frescura dos dados no BI. É essencial garantir que o ETL ocorra em horários que não impactem a operação normal do banco de dados. Recursos do sistema: Processos ETL intensivos podem consumir muitos recursos do servidor, como CPU e memória, potencialmente impactando outras operações. Uma abordagem recomendada para evitar esses conflitos é utilizar um banco de dados intermediário, conhecido como staging area. Nesse cenário, você extrai os dados de origem, realiza as transformações necessárias no banco de staging e, em seguida, carrega os dados transformados no banco de produção. Isso ajuda a minimizar a concorrência e os impactos no desempenho do ambiente de produção. Recomendo assistir algumas aulas do curso: -> Sql server basico -> Trabalho com grande conjunto dados power bi Espero que isso ajude!
  12. Passo 1: Transformar colunas em linhas no Power Query Importe os dados para o Power Query: Inicie o Power Query Editor com os seus dados. Transformar colunas em linhas: Use a funcionalidade de "Despivotar outras colunas" para transformar as 25 colunas em duas colunas: "TipoResposta" e "Valor". Passo 2: Calcular a média desconsiderando valores zero em DAX Depois de transformar as colunas em linhas no Power Query, você pode usar a seguinte fórmula DAX para calcular a média desconsiderando valores zero: Media ajustada = CALCULATE( AVERAGE(Unisensos[Valor]), Unisensos[Valor] <> 0 )
  13. Veja se esse codigo te atende: let MenorData = #date(2018,1,1), MaiorData = #date(2024,12,31), DataInicio = Date.StartOfYear(MenorData), DataFim = Date.EndOfYear(MaiorData), Dias = Duration.Days(DataFim - DataInicio) + 1, ListarDatas = List.Dates(DataInicio, Dias, #duration(1,0,0,0)), Tabela = #table( type table[ Data = date, Ano = Int64.Type, NomeMes = text, MesAbre = text, MesAno = text, MesNum = number, AnoMesINT = number, InicioMes = date, Trimestre = Int64.Type, TrimestreAbreviado = text, Bimestre = text, Semestre = text, Semana = Int64.Type, DiaSemana = Int64.Type, NomeDia = text, Passado = logical, AnoAtual = text, MesAtual = text ], List.Transform( ListarDatas, each { _, Date.Year(_), Text.Proper(Date.MonthName(_)), Text.Proper(Text.Start(Date.MonthName(_), 3)), Text.Proper(Text.Start(Date.MonthName(_), 3)) & "-" & Text.End(Text.From(Date.Year(_)), 2), Date.Month(_), Date.Year(_) * 100 + Date.Month(_), Date.StartOfMonth(_), Date.QuarterOfYear(_), Text.From(Date.QuarterOfYear(_)) & "º Trim ", Text.From(Number.RoundUp(Date.Month(_) / 2, 0)) & "º Bim", Text.From(Number.RoundUp(Date.Month(_) / 6, 0)) & "º Sem", Date.WeekOfMonth(_), Date.DayOfWeek(_), Date.DayOfWeekName(_), if _ <= MaiorData then true else false, if Date.Year(DateTime.LocalNow()) = Date.Year(_) then "Ano Atual" else Text.From(Date.Year(_)), if Date.Year(DateTime.LocalNow()) = Date.Year(_) and Date.Month(DateTime.LocalNow()) = Date.Month(_) then "Mês Atual" else Text.Proper(Date.MonthName(_)) } ) ), #"Personalização Adicionada" = Table.AddColumn(Tabela, "Safra", each let mes = Date.Month([Data]), ano = Date.Year([Data]), inicio_safra = #date(if mes >= 4 then ano else ano - 1, 4, 1), fim_safra = #date(if mes >= 4 then ano + 1 else ano, 3, 31), safra_texto = Text.From(Date.Year(inicio_safra)) & "/" & Text.From(Date.Year(fim_safra)) in safra_texto), #"Coluna Personalizada Adicionada" = Table.AddColumn(#"Personalização Adicionada", "Personalizar", each Text.Combine({"Safra ", Text.Middle([Safra], 2, 3), Text.Middle([Safra], 7)}), type text), #"Colunas Removidas" = Table.RemoveColumns(#"Coluna Personalizada Adicionada", {"Safra"}), #"Colunas Renomeadas" = Table.RenameColumns(#"Colunas Removidas", {{"Personalizar", "Safra"}}), // Adicionando coluna SafraAtual baseada na data atual do sistema DataAtual = DateTime.LocalNow(), MesAtual = Date.Month(DataAtual), AnoAtual = Date.Year(DataAtual), SafraAtualTexto = if MesAtual >= 4 then Text.From(AnoAtual) & "/" & Text.From(AnoAtual + 1) else Text.From(AnoAtual - 1) & "/" & Text.From(AnoAtual), SafraAtualTextoCorrigido = "Safra " & Text.Middle(SafraAtualTexto,2,3) & Text.Middle(SafraAtualTexto, 7), #"Adicionando SafraAtual" = Table.AddColumn(#"Colunas Renomeadas", "SafraAtual", each if [Safra] = SafraAtualTextoCorrigido then "Safra Atual" else [Safra]) in #"Adicionando SafraAtual"
  14. Na tabela dcalendario, você possui uma data que se relaciona com a data do fato, correto? Nesse caso, quando você relaciona o dia 10 da tabela dcalendario com a data de referência da tabela de fatos, você pode adicionar uma coluna na dcalendario que incrementa essa data em um dia. Essa nova coluna será usada para aplicar seu filtro.
  15. Verifique se tem outra versão instalada, caso sim utilize algum aplicativo de desistalação como revounistaler tire os resíduos desistale e instale novamente!
  16. Veja se vocês tem o driver de conexão instalado seu computador conforme documentação microsoft! https://learn.microsoft.com/pt-br/power-query/connectors/postgresql
  17. Dia verifique se a fontes de dados estão como organizicional e verifique se você fez a conexão lá dentro do power bi online.
  18. Você quer que repita só nos casos numero de matricula é igual? Ex: SPV01000001 14 18/03/2024 SPV02062002 14 01/01/2013 Resultado esperado: SPV02062002 14 01/01/2013 SPV02062002 14 01/02/2013 SPV02062002 14 01/03/2013 . . . SPV02062002 14 01/01/2024 SPV02062002 14 01/02/2024 SPV01000001 14 18/03/2024
  19. Uma resposta do nosso amigo chatgpt: O erro "ORA-01427: single-row subquery returns more than one row" ocorre quando uma subquery, que deveria retornar apenas uma linha, retorna múltiplas linhas. Para resolver esse problema, é necessário identificar e ajustar as subqueries que estão causando o erro. Na sua query, há várias subqueries que podem estar causando o problema. Aqui estão os passos para identificar e resolver: 1. Verifique as subqueries: Cada subquery no `SELECT` deve retornar apenas uma linha. A seguir estão as subqueries presentes na sua query: ```sql (SELECT IDENTIFICADOR FROM IDENTIFICACAO_PESSOA WHERE CATEGORIA_IDENTIFICACAO_FK IN (1, 2) AND PESSOA_FK = P.ID) ``` ```sql (SELECT IDENTIFICADOR FROM IDENTIFICACAO_PESSOA WHERE CATEGORIA_IDENTIFICACAO_FK IN (1, 2) AND PESSOA_FK = E.ID) ``` ```sql (SELECT AM.VALOR AVARIADOS_TOTAL FROM RESULTADO_AMOSTRA AM JOIN PROPRIEDADE PRO ON PRO.ID = AM.PROPRIEDADE_FK WHERE IDENTIFICADOR = 'AVARIADOS_TOTAL' AND AM.AMOSTRA_FK = AAM.AMOSTRA_FK) ``` E assim por diante para cada subquery. 2. **Execute cada subquery individualmente**: Para identificar qual subquery está retornando múltiplas linhas, execute-as separadamente no banco de dados com os mesmos filtros. Por exemplo: ```sql SELECT IDENTIFICADOR FROM IDENTIFICACAO_PESSOA WHERE CATEGORIA_IDENTIFICACAO_FK IN (1, 2) AND PESSOA_FK = [valor_específico_para_P.ID] ``` 3. **Ajuste as subqueries para garantir que retornem uma única linha**: Você pode usar funções agregadas como `MAX`, `MIN`, ou `ROWNUM` para garantir que a subquery retorne apenas uma linha. Por exemplo: ```sql (SELECT MAX(IDENTIFICADOR) FROM IDENTIFICACAO_PESSOA WHERE CATEGORIA_IDENTIFICACAO_FK IN (1, 2) AND PESSOA_FK = P.ID) ``` Ou: ```sql (SELECT IDENTIFICADOR FROM (SELECT IDENTIFICADOR FROM IDENTIFICACAO_PESSOA WHERE CATEGORIA_IDENTIFICACAO_FK IN (1, 2) AND PESSOA_FK = P.ID) WHERE ROWNUM = 1) ``` 4. **Verifique os resultados após ajustar**: Após fazer as alterações, execute a query novamente para verificar se o erro foi resolvido. Aqui está um exemplo de como ajustar uma das subqueries: ```sql P.NOME || ' - ' || (SELECT MAX(IDENTIFICADOR) FROM IDENTIFICACAO_PESSOA WHERE CATEGORIA_IDENTIFICACAO_FK IN (1, 2) AND PESSOA_FK = P.ID) AS PROPRIETARIO ``` Faça o mesmo para cada subquery que pode retornar múltiplas linhas. Verifique cada uma delas e ajuste conforme necessário. Se precisar de mais ajuda para ajustar subqueries específicas, por favor, forneça exemplos dos dados para que eu possa oferecer uma solução mais detalhada.
  20. Bom dia isso parece ser um erro direto da sua query onde você está tentando encontrar mais de um valor para uma mesma linha. Sugiro dar uma olhada na sua query e usar uma clausula trazer valores únicos. https://stackoverflow.com/questions/71200103/what-does-the-error-single-row-subquery-returns-more-than-one-row-means-and-ho#:~:text=ORA-01427%3A Cause%3A The,only one row is retrieved.
  21. Tenho essa solução tente replicar seu conjunto de dados:
  22. Exemplo de aplicação sql server: Explicação: 1 - DateSeries CTE: Gera uma série de datas começando em '2023-04-01' e incrementando mensalmente até '2024-01-01'. 2 - Data CTE: Define os dados fornecidos no exemplo. 3 - Consulta principal: Junta as datas geradas com os dados originais, garantindo que as datas sejam maiores ou iguais à data de alteração de cada chapa. 4 - ORDER BY: Ordena o resultado por Chapa e data. 5 - OPTION (MAXRECURSION 0): Permite que a CTE recursiva execute sem o limite padrão de 100 recursões. WITH DateSeries AS ( SELECT CAST('2023-04-01' AS DATE) AS Date UNION ALL SELECT DATEADD(MONTH, 1, Date) FROM DateSeries WHERE DATEADD(MONTH, 1, Date) <= '2024-01-01' ), Data AS ( SELECT 'SPV02031008' AS CentroCusto, 24694 AS Chapa, CAST('2023-04-01' AS DATE) AS AlteracaoCentroCusto UNION ALL SELECT 'SPV0204002', 24694, CAST('2024-01-01' AS DATE) ) SELECT d.CentroCusto, d.Chapa, ds.Date AS AlteracaoCentroCusto FROM Data d JOIN DateSeries ds ON ds.Date >= d.AlteracaoCentroCusto ORDER BY d.Chapa, ds.Date OPTION (MAXRECURSION 0);
  23. Consegue disponibilizar a query com uma versão simplificada do seu database?
×
×
  • Criar Novo...