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

(Resolvido) Instrução Sql


robinhocne

Pergunta

OLá pessoal, estou fazendo uma instrução sql, mas gostaria de fazer busca de só uma determinada "categoria":

Quer Dizer tenho uma Tabela chamada Praticas que marcos aulas nela de categoria determinada categoria do Usuário, nessa tabela eu faço a busca dessa categoria, mas aki eu só busca normais, tenho dois grids uma para Por exemplo moto e outra carro:

Esses são os dados:

With QryPraB do
      Begin
         Close;
         Sql.Clear;
         Sql.Add ('Select P.Aluno, P.Instrutor, P.Data, P.Horario, P.Categoria, P.Aluno From Praticas P,'
                  +'Instrutores I Where P.Aluno=' + TxtMat.Text +
                   'AND P.Status=1 AND I.Codigo=P.Instrutor ORDER BY P.Data, P.Horario');
         Open;
      end;

Link para o comentário
Compartilhar em outros sites

6 respostass a esta questão

Posts Recomendados

  • 0

robinhocne, sempre que se fala em filtrar determinado campo, isto é feito adicionando tal filtro na cláusula WHERE, ou seja, você coloca "nome_do_campo_a_filtrar = valor_desejado".

Quando você quer listar os dados "agrupados" (não falo de group by), basta que você coloque na cláusula ORDER BY, no seu início, os campos que farão o agrupamento. Por ex.:

SELECT P.Aluno, P.Instrutor, P.Data, P.Horario, P.Categoria, P.Aluno 
FROM Praticas P, Instrutores I 
WHERE P.Aluno=' + TxtMat.Text 
  AND P.Status=1 
  AND I.Codigo=P.Instrutor 
ORDER BY P.Data, P.Horario
aqui você tem a listagem agrupada, e em seqüência de data.
SELECT P.Aluno, P.Instrutor, P.Data, P.Horario, P.Categoria, P.Aluno 
FROM Praticas P, Instrutores I 
WHERE P.Aluno=' + TxtMat.Text 
  AND P.Status=1 
  AND I.Codigo=P.Instrutor 
ORDER BY P.Categoria, P.Data, P.Horario
aqui você tem a listagem agrupada por Categoria e em seqüência de data.
SELECT P.Aluno, P.Instrutor, P.Data, P.Horario, P.Categoria, P.Aluno 
FROM Praticas P, Instrutores I 
WHERE P.Aluno=' + TxtMat.Text 
  AND P.Status=1 
  AND I.Codigo=P.Instrutor 
ORDER BY P.Instrutor, P.Data, P.Horario

aqui você tem a listagem agrupada por Instrutor e em seqüência de data.

Faça estas consultas no IBExpert (você deve tê-lo instalado) e verifique os resultados.

Link para o comentário
Compartilhar em outros sites

  • 0

Ok, Micheus, mas eu gostaria:

Tenho uma IbQuery para a categoria A e outra para B então gostaria de ter tipo essa instrução SQL para uma e outra:

With QryPraB do
      Begin
         Close;
         Sql.Clear;
         Sql.Add ('Select P.Aluno, P.Instrutor, P.Data, P.Horario, P.Categoria, P.Aluno From Praticas P,'
                  +'Instrutores I Where P.Aluno=' + TxtMat.Text +
                   'AND P.Status=1 AND I.Codigo=P.Instrutor ORDER BY P.Data, P.Horario');
         Open;
      end

Link para o comentário
Compartilhar em outros sites

  • 0
Pois então, robinhocne, não seria o caso de você incluir o campo Categoria na cláusula WHERE, e passá-la como parâmetro?

Sim,

Fiz assim mas dá erro no A:

With QryPraA do
      Begin
         Close;
         Sql.Clear;
         Sql.Add ('Select P.Aluno, P.Instrutor, P.Data, P.Horario, P.Categoria, P.Aluno From Praticas P,'
                  +'Instrutores I Where P.Aluno=' + TxtMat.Text +
                   'AND P.Categoria= 'A' AND P.Status=1 AND I.Codigo=P.Instrutor ORDER BY P.Data, P.Horario');
         Open;
      end;

Link para o comentário
Compartilhar em outros sites

  • 0
Pois então, robinhocne, não seria o caso de você incluir o campo Categoria na cláusula WHERE, e passá-la como parâmetro?

Sim,

Fiz assim mas dá erro no A:

With QryPraA do
      Begin
         Close;
         Sql.Clear;
         Sql.Add ('Select P.Aluno, P.Instrutor, P.Data, P.Horario, P.Categoria, P.Aluno From Praticas P,'
                  +'Instrutores I Where P.Aluno=' + TxtMat.Text +
                   'AND P.Categoria= 'A' AND P.Status=1 AND I.Codigo=P.Instrutor ORDER BY P.Data, P.Horario');
         Open;
      end;

quando você quizer colocar um string no seu SQL deste modo, você deve colocar duas vezes as áspas simples:

'AND P.Categoria= ''A'' AND P.Status=1 AND I.Codigo=P.Instrutor ORDER BY P.Data, P.Horario');

ou usar a função QuotedStr (se não me engano), que fará a mesma coisa.

'AND P.Categoria= ' +QuotedStr('A') + ' AND P.Status=1 AND I.Codigo=P.Instrutor ORDER BY P.Data, P.Horario');

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,1k
    • Posts
      651,8k
×
×
  • Criar Novo...