Fórum dilema do meu mês em filtros #322575

30/05/2006

0

olha só galera, eu estou a mais de 1 mês neste problema:
veja esta consulta sql que uso em banco interbase:

select distinct DISCIPLINA from NOTAS A where ANO_LETIVO = ´2006´ and SERIE = ´6ª SÉRIE´ and TURMA = ´A´ and TURNO = ´TARDE´ and exists ( select distinct * from BOLETIM where COD_BOLE = A.COD_BOLE and MATRICULA = A.MATRICULA and ANO_LETIVO = ´2006´ and SERIE = ´6ª SÉRIE´ and TURMA = ´A´ and TURNO = ´TARDE´) and DISCIPLINA <> ´MATEMÁTICA - ALGEBRA´ and DISCIPLINA <> ´MATEMÁTICA GEOMETRIA´ and DISCIPLINA <> ´PORTUGUÊS - GRAMÁTICA´ and DISCIPLINA <> ´PORTUGUÊS - TEXTO - REDAÇÃO´ order by DISCIPLINA

Resultado:
DISCIPLINA ============================== CIÊNCIAS EDUCAÇÃO ARTÍSTICA EDUCAÇÃO FÍSICA EDUCAÇÃO RELIGIOSA GEOGRAFIA HISTÓRIA INFORMÁTICA INGLÊS LITERATURA ÉTICA


como poderei fazer para que estes resultados que vem de outra tabela possa cair dentro deta minha consulta? independente da quantidade de registros desta outra tabela?
DISCIPLINA <> ´MATEMÁTICA - ALGEBRA´ and
DISCIPLINA <> ´MATEMÁTICA GEOMETRIA´ and
DISCIPLINA <> ´PORTUGUÊS - GRAMÁTICA´ and
DISCIPLINA <> ´PORTUGUÊS - TEXTO - REDAÇÃO´

explicando melho: ´MATEMÁTICA - ALGEBRA´ , ´MATEMÁTICA GEOMETRIA´ , ´PORTUGUÊS - GRAMÁTICA´ , ´PORTUGUÊS - TEXTO - REDAÇÃO´ é um resultado que fica em outra tabela como fazer para que estas strings caiam dentro da minha consulta acima?

Obrigado
Ramos


Erivando

Erivando

Responder

Posts

31/05/2006

Aroldo Zanela

Colega,

Se eu tiver entendido, basta unir as consultas com [b:1a0b5e9e00]union all[/b:1a0b5e9e00]. Senão, coloque a estrutura das tabelas e mais detalhes sobre o problema.


Responder

Gostei + 0

31/05/2006

Erivando

[quote:6c79860798=´Aroldo Zanela´]Colega,

Se eu tiver entendido, basta unir as consultas com [b:6c79860798]union all[/b:6c79860798]. Senão, coloque a estrutura das tabelas e mais detalhes sobre o problema.[/quote:6c79860798]

No sistema aqui tem estas duas tabelas; tab. MATERIAS e tab. NOTAS de onde através destas duas gostaria de uma consulta que mim traga o seguinte resulatado:

DISCIPLINA
==============================
CIÊNCIAS
EDUCAÇÃO ARTÍSTICA
EDUCAÇÃO FÍSICA
EDUCAÇÃO RELIGIOSA
GEOGRAFIA
HISTÓRIA
INFORMÁTICA
INGLÊS
LITERATURA
ÉTICA

e não este:
DISCIPLINA
==============================
CIÊNCIAS
EDUCAÇÃO ARTÍSTICA
EDUCAÇÃO FÍSICA
EDUCAÇÃO RELIGIOSA
GEOGRAFIA
HISTÓRIA
INFORMÁTICA
INGLÊS
LITERATURA
MATEMÁTICA - ALGEBRA
MATEMÁTICA GEOMETRIA
PORTUGUÊS - GRAMÁTICA
PORTUGUÊS - TEXTO - REDAÇÃO
ÉTICA

como tar vindo pra mim agora, quero que a consulta não mim retorne estas disciplinas:
MATEMÁTICA - ALGEBRA
MATEMÁTICA GEOMETRIA
PORTUGUÊS - GRAMÁTICA
PORTUGUÊS - TEXTO - REDAÇÃO

tabelas usadas:

/* Domain definitions */ CREATE DOMAIN ´CODIGO´ AS INTEGER NOT NULL; CREATE DOMAIN ´DISCIPLINA´ AS VARCHAR(30); /* Table: MATERIAS, Owner: INFORAMOS */ CREATE TABLE ´MATERIAS´ ( ´COD_MATE´´CODIGO´, ´DISCIPLINA´´DISCIPLINA´, ´LDB´VARCHAR(2), ´DISTRIBUIDA´VARCHAR(3), ´UNIFICACAO´VARCHAR(45), PRIMARY KEY (´COD_MATE´) );


/* Domain definitions */ CREATE DOMAIN ´ANO´ AS VARCHAR(4); CREATE DOMAIN ´CODIGO´ AS INTEGER NOT NULL; CREATE DOMAIN ´DISCIPLINA´ AS VARCHAR(30); CREATE DOMAIN ´MATRICULA´ AS VARCHAR(17); CREATE DOMAIN ´NOTA´ AS VARCHAR(5); CREATE DOMAIN ´SERIE´ AS VARCHAR(30); CREATE DOMAIN ´TURMA´ AS VARCHAR(10); CREATE DOMAIN ´TURNO´ AS VARCHAR(5); /* Table: NOTAS, Owner: INFORAMOS */ CREATE TABLE ´NOTAS´ ( ´COD_NOTA´´CODIGO´, ´COD_BOLE´´CODIGO´, ´MATRICULA´´MATRICULA´, ´ANO_LETIVO´´ANO´, ´DISCIPLINA´´DISCIPLINA´, ´ETAPA_1_MAR´´NOTA´, ´ETAPA_1_ABR´´NOTA´, ´ETAPA_1_M´´NOTA´, ´ETAPA_1_R´´NOTA´, ´ETAPA_2_MAI´´NOTA´, ´ETAPA_2_JUN´´NOTA´, ´ETAPA_2_M´´NOTA´, ´ETAPA_2_R´´NOTA´, ´ETAPA_3_AGO´´NOTA´, ´ETAPA_3_SET´´NOTA´, ´ETAPA_3_M´´NOTA´, ´ETAPA_3_R´´NOTA´, ´ETAPA_4_OUT´´NOTA´, ´ETAPA_4_NOV´´NOTA´, ´ETAPA_4_M´´NOTA´, ´ETAPA_4_R´´NOTA´, ´PROVAO´´NOTA´, ´PROVAO_R´´NOTA´, ´MEDIA_FINAL´´NOTA´, ´FALTAS´INTEGER, ´PONTOS´VARCHAR(4), ´RESULTADO_FINAL´VARCHAR(11), ´SERIE´´SERIE´, ´TURMA´´TURMA´, ´TURNO´´TURNO´, ´DISTRIBUIDA´VARCHAR(3), PRIMARY KEY (´COD_NOTA´) );



Esta consulta abaixo traz os resultado que desejo mas não sei como fazer isto usando o resulatdo de uma outra consulta.
select distinct DISCIPLINA from NOTAS A where ANO_LETIVO = ´2006´ and SERIE = ´6ª SÉRIE´ and TURMA = ´A´ and TURNO = ´TARDE´ and exists ( select distinct * from BOLETIM where COD_BOLE = A.COD_BOLE and MATRICULA = A.MATRICULA and ANO_LETIVO = ´2006´ and SERIE = ´6ª SÉRIE´ and TURMA = ´A´ and TURNO = ´TARDE´) and DISCIPLINA <> ´MATEMÁTICA - ALGEBRA´ and DISCIPLINA <> ´MATEMÁTICA GEOMETRIA´ and DISCIPLINA <> ´PORTUGUÊS - GRAMÁTICA´ and DISCIPLINA <> ´PORTUGUÊS - TEXTO - REDAÇÃO´ order by DISCIPLINA



Responder

Gostei + 0

31/05/2006

Erivando

será que alguem pode entender o que eu quero?

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

[quote:d7360006b8=´Aroldo Zanela´]Colega, Se eu tiver entendido, basta unir as consultas com [b:d7360006b8]union all[/b:d7360006b8]. Senão, coloque a estrutura das tabelas e mais detalhes sobre o problema.


No sistema aqui tem estas duas tabelas; tab. MATERIAS e tab. NOTAS de onde através destas duas gostaria de uma consulta que mim traga o seguinte resulatado:

DISCIPLINA
==============================
CIÊNCIAS
EDUCAÇÃO ARTÍSTICA
EDUCAÇÃO FÍSICA
EDUCAÇÃO RELIGIOSA
GEOGRAFIA
HISTÓRIA
INFORMÁTICA
INGLÊS
LITERATURA
ÉTICA

e não este:
DISCIPLINA
==============================
CIÊNCIAS
EDUCAÇÃO ARTÍSTICA
EDUCAÇÃO FÍSICA
EDUCAÇÃO RELIGIOSA
GEOGRAFIA
HISTÓRIA
INFORMÁTICA
INGLÊS
LITERATURA
MATEMÁTICA - ALGEBRA
MATEMÁTICA GEOMETRIA
PORTUGUÊS - GRAMÁTICA
PORTUGUÊS - TEXTO - REDAÇÃO
ÉTICA

como tar vindo pra mim agora, quero que a consulta não mim retorne estas disciplinas:
MATEMÁTICA - ALGEBRA
MATEMÁTICA GEOMETRIA
PORTUGUÊS - GRAMÁTICA
PORTUGUÊS - TEXTO - REDAÇÃO

tabelas usadas:

/* Domain definitions */ CREATE DOMAIN ´CODIGO´ AS INTEGER NOT NULL; CREATE DOMAIN ´DISCIPLINA´ AS VARCHAR(30); /* Table: MATERIAS, Owner: INFORAMOS */ CREATE TABLE ´MATERIAS´ ( ´COD_MATE´´CODIGO´, ´DISCIPLINA´´DISCIPLINA´, ´LDB´VARCHAR(2), ´DISTRIBUIDA´VARCHAR(3), ´UNIFICACAO´VARCHAR(45), PRIMARY KEY (´COD_MATE´) );


/* Domain definitions */ CREATE DOMAIN ´ANO´ AS VARCHAR(4); CREATE DOMAIN ´CODIGO´ AS INTEGER NOT NULL; CREATE DOMAIN ´DISCIPLINA´ AS VARCHAR(30); CREATE DOMAIN ´MATRICULA´ AS VARCHAR(17); CREATE DOMAIN ´NOTA´ AS VARCHAR(5); CREATE DOMAIN ´SERIE´ AS VARCHAR(30); CREATE DOMAIN ´TURMA´ AS VARCHAR(10); CREATE DOMAIN ´TURNO´ AS VARCHAR(5); /* Table: NOTAS, Owner: INFORAMOS */ CREATE TABLE ´NOTAS´ ( ´COD_NOTA´´CODIGO´, ´COD_BOLE´´CODIGO´, ´MATRICULA´´MATRICULA´, ´ANO_LETIVO´´ANO´, ´DISCIPLINA´´DISCIPLINA´, ´ETAPA_1_MAR´´NOTA´, ´ETAPA_1_ABR´´NOTA´, ´ETAPA_1_M´´NOTA´, ´ETAPA_1_R´´NOTA´, ´ETAPA_2_MAI´´NOTA´, ´ETAPA_2_JUN´´NOTA´, ´ETAPA_2_M´´NOTA´, ´ETAPA_2_R´´NOTA´, ´ETAPA_3_AGO´´NOTA´, ´ETAPA_3_SET´´NOTA´, ´ETAPA_3_M´´NOTA´, ´ETAPA_3_R´´NOTA´, ´ETAPA_4_OUT´´NOTA´, ´ETAPA_4_NOV´´NOTA´, ´ETAPA_4_M´´NOTA´, ´ETAPA_4_R´´NOTA´, ´PROVAO´´NOTA´, ´PROVAO_R´´NOTA´, ´MEDIA_FINAL´´NOTA´, ´FALTAS´INTEGER, ´PONTOS´VARCHAR(4), ´RESULTADO_FINAL´VARCHAR(11), ´SERIE´´SERIE´, ´TURMA´´TURMA´, ´TURNO´´TURNO´, ´DISTRIBUIDA´VARCHAR(3), PRIMARY KEY (´COD_NOTA´) );



Esta consulta abaixo traz os resultado que desejo mas não sei como fazer isto usando o resulatdo de uma outra consulta.
select distinct DISCIPLINA from NOTAS A where ANO_LETIVO = ´2006´ and SERIE = ´6ª SÉRIE´ and TURMA = ´A´ and TURNO = ´TARDE´ and exists ( select distinct * from BOLETIM where COD_BOLE = A.COD_BOLE and MATRICULA = A.MATRICULA and ANO_LETIVO = ´2006´ and SERIE = ´6ª SÉRIE´ and TURMA = ´A´ and TURNO = ´TARDE´) and DISCIPLINA <> ´MATEMÁTICA - ALGEBRA´ and DISCIPLINA <> ´MATEMÁTICA GEOMETRIA´ and DISCIPLINA <> ´PORTUGUÊS - GRAMÁTICA´ and DISCIPLINA <> ´PORTUGUÊS - TEXTO - REDAÇÃO´ order by DISCIPLINA
[/quote:d7360006b8]



Responder

Gostei + 0

31/05/2006

Motta

Sugestão :

Publique a descrição das tabelas e a pergunta que se quer responder
na forma descritiva :

Ex:
1) Listar todas a materias que tiveram nº de alunos acima da média.
2) Listar todas as materias das turmas da 6ª serie.

----------------------------------------------------------------------------


Responder

Gostei + 0

01/06/2006

Rjun

Acho que sua estrutura de tabela está meio confusa. Você está fazendo busca por nomes. Isso tem tudo pra dar errado. Crie tabelas de disciplinas e materias.


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar