Jump to content
Marcelo Todaro

Sql: quando "select distinct" não evita repetições

Recommended Posts

Caríssimos,

O algoritmo abaixo é a versão simplificada de um script SQL que preciso rodar:

select distinct
CODIGO,
DATA_ATUALIZACAO,
DATA_APROVACAO
from TABELA
where
ORDEM_SERVICO = '1'
and DATA_CRIACAO <= to_date('01/10/2021','dd/mm/yyyy')
and ((DATA_ATUALIZACAO like to_date(SYSDATE,'dd/mm/yyyy') or DATA_APROVACAO like to_date(SYSDATE,'dd/mm/yyyy'))
order by CODIGO
;

Mesmo usando "distinct" o resultado retorna valores repetidos de "CODIGO" quando "ORDEM_SERVICO" é 1 para mais de um campo ao mesmo tempo.

Agradeço dicas de como evitar essa repetição.

Share this post


Link to post
Share on other sites

Marcelo, bom dia. Tudo bem?

Não ficou muito claro o que está querendo... Você quer ver todos os registros que tenham o Codigo for igual a 1 ? Se sim, virão N registros nessa sua consulta, que tenham o CODIGO = 1 e que tenham valores diferentes nos demais campos que pediu pra visualizar, como as datas de Atualização e Aprovação.

O comando SELECT DISTINCT neste caso, trará todos os registros diferentes com essa combinação que está solicitando : CODIGO + DATA_ATUALIZACAO + DATA_APROVACAO. Se tiverem vários com o codigo 1 e datas diferentes, virão todos eles, sendo um registro retornado para cada combinação exatamente igual. 

    

  • Like 1

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Similar Content

    • By Willi Ramalho
      Boa tarde senhores, não conseguir colocar no topico de sql, por isso coloquei aqui. Aqui na implantação do sistema, foi feito um relatório customizado com Consultor da época e o gerente do setor.
      Estou com problema em uma parte do codigo, consegui encontrar onde esta o erro, mais como não entendo muito ainda de SQL, não to conseguindo resolver.
      Da erro de "ORA-01427: single-row subquery returns more than one row"  nessa parte da consulta " , (SELECT REF FROM PFFINANC
                  where CODEVENTO = VC.CODEVENTO
                  AND CHAPA = VC.CHAPA
                  AND MESCOMP = VC.MESCOMP
                  AND ANOCOMP = VC.ANOCOMP
                  AND NROPERIODO =  VC.NROPERIODO) AS REFERENCIA,"
      Quando deixa essa parte comentada, a consulta funciona, mais eu preciso das referencias no contra cheque, alguém me da um luz? 
    • By pedrohsc.main
      ~Trablhando em Lansweeper~
      Gostaria que minha consultar trouxesse sempre a data atual.
      Sql : 
      Select Distinct tblAssets.AssetName As micro,
        tblAssets.Memory As memoria,
        tblAssets.Processor As Processador,
        tblAssets.IPAddress,
        tblAssets.Username,
        tblAssetCustom.Model,
        tsysOS.OSname,
        tblAssets.Lastseen
      From lansweeperdb.dbo.tblAssets
        Inner Join lansweeperdb.dbo.tblOperatingsystem On tblAssets.AssetID =
            tblOperatingsystem.AssetID
        Inner Join lansweeperdb.dbo.tblAssetCustom On tblAssets.AssetID =
            tblAssetCustom.AssetID
        Inner Join lansweeperdb.dbo.tsysIPLocations On tsysIPLocations.LocationID =
            tblAssets.LocationID
        Inner Join lansweeperdb.dbo.tsysOS On tblAssets.OScode = tsysOS.OScode
       
      A coluna *tblAssets.Lastseen* me tras a última varredura do sistema.
      Como posso por condição nela, pra que ela me traga sempre a data atual de forma automática ??
      Para compreender o motivo. eu criei um ALERTA no sistema do lansweeper, então queria que, disparasse somente os micros "varridos" do dia.
      Alguém pode me ajudar por favor ?
       
      Saudaçoes !
    • By luisgustavogomes
      Pessoal, boa tarde!
      Estou criando um diretório do Github com algumas consultas que podem "ou não" ajudar a comunidade, neste caso o link do repositório é o https://github.com/luisgustavogomes/TOTVS-RM/tree/master/RH e temos dois (2) eventos para tratamos dos históricos da Folha.
       
      https://github.com/luisgustavogomes/TOTVS-RM/blob/master/RH/FOP_GET_HSTFUNCAO.sql
      https://github.com/luisgustavogomes/TOTVS-RM/blob/master/RH/FOP_GET_HSTSECAO.sql
       
      Segue uma forma de utilização... 
      USE CORPORERM
      GO 
      SELECT 
           PF.CODCOLIGADA
          ,PF.CHAPA
          ,PF.ANOCOMP
          ,PF.MESCOMP
          ,PF.NROPERIODO
          ,HF.CODFUNCAO_HIST
          ,HF.NOME_FUNCAO_HIST
          ,HS.CODSECAO_HIST
          ,HS.DESC_SECAO_HIST
      FROM DBO.PFPERFF PF
      CROSS APPLY [dbo].[TB_FOP_GET_HISTFUNCAO] 
      (    
           PF.CODCOLIGADA
          ,PF.CHAPA
          ,EOMONTH(DATEFROMPARTS(PF.ANOCOMP,PF.MESCOMP,1))
      ) HF
      CROSS APPLY [dbo].[TB_FOP_GET_HISTSECAO] 
      (    
           PF.CODCOLIGADA
          ,PF.CHAPA
          ,EOMONTH(DATEFROMPARTS(PF.ANOCOMP,PF.MESCOMP,1))
      ) HS
      WHERE PF.CODCOLIGADA = 1 
      AND PF.ANOCOMP = 2020
      AND PF.MESCOMP = 10
       
      A lógica para qualquer outro histórico é parecido, caso queiram outros exemplos e só falar !!! 
      Espero que ajude alguém.
      Abraços.
       
    • By Fabio Caspirro
      Preciso criar uma sentença SQL que traga todos os clientes com o primeiro nome = “Jorge” e que tenham o telefone começando com “99”.
      Porém, não sei devido estar em tabelas diferentes, alguem pode me ajudar?
       
    • By Evandro Gonçalves
      Bom dia.
      Alguém teria um script sql do custo da folha, calculando Custo da folha = Soma de Proventos+ Fgts+ Benefícios-Deduções INSS
    • By Adelson joão da Silv
      Pessoal, boa tarde! Estou chegando agora nesse fórum e gostaria se possível de uma ajuda, é que estou tentando fazer uma consulta SQL que retorne os seguintes dados:
      Chapa I Nome I Código do Evento I Descrição do Evento I Valor do Evento Jan/2019 I Valor do Evento Fev/2019 I Valor do Evento Mar/2019.
      Será que alguém tem essa consulta montada? se sim, agradeço desde já se puder disponibilizar.
      Adelson João
    • By Severo Daniel Madruga
      Boa tarde
      Sou novo no mundo dos sistemas Totvs linha RM, estou precisando gerar diversos cubos e raltorios para a versão do RM.Educacional mas estou com uma dificuldade enrome em identificar e entender a identificacao de qual atabela pertençe a qual linha de produtos dentro do banco de dados, gerei um relatorio da tabela GLINKSREL porem existem muitas tabelas que não me levam as respostas esperadas na minha consulta.
      Agradeço a ajuda
    • By Jair - Fórmula
      Estou montando um conceito de testes aqui e usando uma leitura  tipo CONEXAO DE BANCO DADOS com Sentença SQL e me retorna esse erro abaixo. Já ouvi falar, mas não consigo saber exatamente o que colocar no lugar da sentença lá 😕 Por sinal queria mesmo era usar uma  procedure. Ai dependendo já não sei o que fazer neste caso, mas vamos lá... 


      " A sentença SQL da tabela deve conter um comentário para substituição do filtro. /* where */ OU /* and */    "
      Minha sentença é básica, ainda de testes, por exemplo:
      Select CodColigada, Sum(Valor) as Valor 
      From TabTemp
      Where 1=1
      Group by CodColigada
    • By rafaelf
      Esse manual irá te ajudar a identificar:
      - uma tabela a partir de uma tela de cadastro.
      - entender como foi criada a tabela GLINKSREL
      - a executar comandos em SQL e outros.
       
       
      treinamentodesql.pptx
    • By Jair - Fórmula
      Montei uma listagem de tabelas dinâmicas do sistema para quem quiser consultar facilmente o nome de alguma tabela usada para armazenar detalhes de tabelas usadas internamente no sistema para algumas funções, como itens de código de situação de funcionários, tipo de dependente, entre outros.

       
      Vou montar uma outra consulta , provavelmente uma procedure, com informações das tabelas com os detalhes, da GCONSIST, e demais tabelas internas usadas nas tabelas dinâmicas do sistemas. 
       
      Listagem de Tabelas Dinâmicas.xlsx
  • Recent

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.