Jump to content
Fórum Script Brasil
  • 0

(Resolvido) Instrução Sql


robinhocne
 Share

Question

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 to comment
Share on other sites

6 answers to this question

Recommended Posts

  • 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 to comment
Share on other 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 to comment
Share on other 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 to comment
Share on other 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 to comment
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
Answer this question...

×   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.

 Share

  • Forum Statistics

    • Total Topics
      149.8k
    • Total Posts
      646.6k
×
×
  • Create New...