Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) Registro repetidos


Vivendo&Aprendendo

Pergunta

12 respostass a esta questão

Posts Recomendados

  • 0
Como eu faço para em uma sql mostrar apenas os registros iguais de uma tabela.

Suponha que voce tenha uma tabela onde tenha cadastrado fabricantes de tinta

então voce teria na tabela ( PRODUTOS )

ID----------FABRICANTE----------MARCA--------COR

123---------SULVINIL--------------MARVEL-------AZUL

222---------BRASIL TINTAS-------BRASIL-------AZUL

333---------NOVA COR------------NOVA---------VERMELHO

444---------NOVA COR------------NOVA----------AZUL

Select * from Produtos where COR = 'AZUL'

o resultado será todos os registros que contem a cor azul

abraço

Link para o comentário
Compartilhar em outros sites

  • 0
Certo Jhonas, mas eu preciso que todos os alunos e matérias iguais sejam mostradas sem entrar com nenhuma informação, tipo eu apenas clicar no botão e ele me dar o relatório de todos os registros repetidos.

Se voce entendeu o exemplo, basta voce chamar a sua select em um botão e montar o relatório no quickreport

se tiver dúvidas em como usar o quickreport, veja estes posts

http://scriptbrasil.com.br/forum/index.php...;highlite=quick

abraço

Link para o comentário
Compartilhar em outros sites

  • 0

Certo Jhonas, mas eu preciso que todos os alunos e matérias iguais sejam mostradas sem entrar com nenhuma informação, tipo eu apenas clicar no botão e ele me dar o relatório de todos os registros repetidos.

Se voce colocar o comando num botão é isso que ele fará

exemplo:

procedure TForm1.Button1Click(Sender: TObject);
begin
   Query1.Active := false;
   Query1.SQL.Clear;
   Query1.SQL.Append('SELECT * FROM PRODUTOS Where COR = ' + '''AZUL''');
   Query1.ExecSQL;
   Query1.Active := true;
end;

Vai mostrar todos os registros que contem a cor azul, a partir dai é só jogar em um relatório

abraço

Link para o comentário
Compartilhar em outros sites

  • 0
Como eu faço para em uma sql mostrar apenas os registros iguais de uma tabela.

Eu não posso entrar com a informação "AZUL" por exemplo. teria que ser apenas por meio de comandos, sem colocar informações nenhuma para filtrar.

Dê um exemplo mais claro do que voce está querendo

abraço

Link para o comentário
Compartilhar em outros sites

  • 0

Vamos lá!

Em minha tabela (HISTORICO) tenho vários dados, entre eles Nome e Disciplina (que são os dados que não podem ser repetidos).

Por exemplo:

NOME DISCIPLINA

MARIA------ PORTUGUÊS

JOÃO--------PORTUGUÊS

JOSÉ--------PORTUGUÊS

MARIA------ PORTUGUÊS

Levando em consideração que nesta tabela existem centenas de registros de alunos eu preciso filtrar sem entrar com nenhuma informação, tipo nome do aluno ou disciplina, todos os alunos que tenham feito a mesma disciplina mais de uma vez. Neste caso a consulta deveria me mostrar apenas os dois registros da MARIA pois é o mesmo aluno e a mesma disciplina.

É isso ai.

Abraço

Link para o comentário
Compartilhar em outros sites

  • 0
Levando em consideração que nesta tabela existem centenas de registros de alunos eu preciso filtrar sem entrar com nenhuma informação, tipo nome do aluno ou disciplina, todos os alunos que tenham feito a mesma disciplina mais de uma vez. Neste caso a consulta deveria me mostrar apenas os dois registros da MARIA pois é o mesmo aluno e a mesma disciplina.

Veja como ficaria

Query1.Active := false;
   Query1.SQL.Clear;
   Query1.SQL.Append('SELECT DISTINCT NOME FROM HISTORICO Where DISCIPLINA  = ' + '''PORTUGUÊS''');
   Query1.ExecSQL;
   Query1.Active := true;

outro exemplo

http://www.forumweb.com.br/foruns/index.ph...st&p=311948

Uma apostila .. procure no capitulo 12

http://br.geocities.com/profwagnerberto/delphibd.htm

abraço

Link para o comentário
Compartilhar em outros sites

  • 0
Acredito que estamos quase lá, mas eu não posso entrar com a informação PORTUGUÊS por exemplo, pois existem mais de 40 disciplinas.

Então não use a clausula WHERE ... voce é que deve adaptar o código a sua necessidade

abraço

Link para o comentário
Compartilhar em outros sites

  • 0

Resolvido

with ADOQuery1 do

begin

Close;

SQL.Clear;

SQL.Add('Select H.* From Historico H');

SQL.Add('Where Exists (Select Aluno, Disciplina, Count(Disciplina)');

SQL.Add('From Historico');

SQL.Add('Where Aluno = H.Aluno and Disciplina = H.Disciplina');

SQL.Add('Group by Aluno, Disciplina');

SQL.Add('Having Count(Disciplina) > 1)');

SQL.Add('Order By Aluno, Disciplina');

Open;

end;

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...