CLAUSULA SQL
Olá Amigos...
estou com um pepino
tenho a seguinte tabela
nome curso status
marcelo 1 1
marcelo 2 1
marcelo 3 0
marcia 1 1
marcia 2 1
maria 1 0
marta 2 1
mirtes 3 1
preciso de um select q me retorne todos os campos dos registros, cujo curso sejam APENAS 2
no caso, retornaria :
marta 2 1
pois só esse registro tem APENAS curso 2
se eu tentar
select * from tabela where curso=2, vai retornar:
marcelo 2 1
marcia 2 1
marta 2 1
porem, marcelo e marcia TAMBEM estão em outros cursos. teria que ser quem tem APENAS o valor 2 na coluna curso.
Obrigado...
estou com um pepino
tenho a seguinte tabela
nome curso status
marcelo 1 1
marcelo 2 1
marcelo 3 0
marcia 1 1
marcia 2 1
maria 1 0
marta 2 1
mirtes 3 1
preciso de um select q me retorne todos os campos dos registros, cujo curso sejam APENAS 2
no caso, retornaria :
marta 2 1
pois só esse registro tem APENAS curso 2
se eu tentar
select * from tabela where curso=2, vai retornar:
marcelo 2 1
marcia 2 1
marta 2 1
porem, marcelo e marcia TAMBEM estão em outros cursos. teria que ser quem tem APENAS o valor 2 na coluna curso.
Obrigado...
Set RsAdo = New ADODB.Recordset
RsAdo.Fields.Append [Ô]Curso[Ô], adInteger
RsAdo.Fields.Append [Ô]Aluno[Ô], adVarChar, 50
RsAdo.Open
Set rs1=cnn.execute([Ô]Select * From tabela Order by Aluno[Ô])
do while not rs1.eoF
set rs2=cnn.execute([Ô]Select Count(ID) as ID From tblAluno Where Curso=2[Ô])
if rs2!ID=1 then
rsado.AddNew
rsado!Curso=2
rsado!Alno=rs1!Aluno
rsado.Update
end if
rs2.close
set rs2=nothing
rs1.moveNext
Loop
rs1.close
set rs1=nothing
RsAdo.Fields.Append [Ô]Curso[Ô], adInteger
RsAdo.Fields.Append [Ô]Aluno[Ô], adVarChar, 50
RsAdo.Open
Set rs1=cnn.execute([Ô]Select * From tabela Order by Aluno[Ô])
do while not rs1.eoF
set rs2=cnn.execute([Ô]Select Count(ID) as ID From tblAluno Where Curso=2[Ô])
if rs2!ID=1 then
rsado.AddNew
rsado!Curso=2
rsado!Alno=rs1!Aluno
rsado.Update
end if
rs2.close
set rs2=nothing
rs1.moveNext
Loop
rs1.close
set rs1=nothing
já tentou
select * from tabela where curso=2 and aluno=[ô]marta[ô]
select top(1)* from tabela where curso=2 and aluno=[ô]marta[ô]
select * from tabela where curso=2 and aluno=[ô]marta[ô]
select top(1)* from tabela where curso=2 and aluno=[ô]marta[ô]
Citação::
já tentou
select * from tabela where curso=2 and aluno=[ô]marta[ô]
select top(1)* from tabela where curso=2 and aluno=[ô]marta[ô]
Mas pq vc colocou o nome do aluno na query?
Marcelo testei aqui e funcionou
SELECT nome, curso, status
FROM Table1
where nome not in (select nome from table1 where curso <> 2)
SELECT nome, curso, status
FROM Table1
where nome not in (select nome from table1 where curso <> 2)
[Ô]teria que ser quem tem APENAS o valor 2 na coluna curso[Ô]
marcelo, marcia e marta tem o valor 2 na coluna curso, então sempre retornará esses três.
Ou vc queria que só retornasse UM registro?
marcelo, marcia e marta tem o valor 2 na coluna curso, então sempre retornará esses três.
Ou vc queria que só retornasse UM registro?
então o que fazer isso
select * from tabela where curso=2 and aluno=[ô]marta[ô]
mostre mas detalhes sobre o seu projeto que mostraremos como se aplica a syntax acima
select * from tabela where curso=2 and aluno=[ô]marta[ô]
mostre mas detalhes sobre o seu projeto que mostraremos como se aplica a syntax acima
gente...
acho que nao me expliquei direito
a marta nao é o importante...
pensem assim:
tenho uma tabela com mais de 3000 alunos
em outra tabela, tenho os cursos que estes alunos participam...
então, tenho que filtrar quem fez APENAS o curso 2
ou seja: utilizar o nome do aluno nao vai ajudar...
tenho que ir na tabela e buscar quem tem apenas o curso 2
ou o curso 3... ou o curso 4...
A saÃda do RXGOMES foi perfeita!!!!
resolveu meu problema...
porém... o cliente acaba de me atochar o dedo novamente...
ele vai querer que tem apenas o curso 2 e o 3
ou quem tem apenas o 3 o 4 e o 5
dá licença!!!!!
vou vender tapioca no terminal de onibus!!!!
vou ter menos dor de cabeça...
Obriagdo amigos...
a luta continua!!!!!
acho que nao me expliquei direito
a marta nao é o importante...
pensem assim:
tenho uma tabela com mais de 3000 alunos
em outra tabela, tenho os cursos que estes alunos participam...
então, tenho que filtrar quem fez APENAS o curso 2
ou seja: utilizar o nome do aluno nao vai ajudar...
tenho que ir na tabela e buscar quem tem apenas o curso 2
ou o curso 3... ou o curso 4...
A saÃda do RXGOMES foi perfeita!!!!
resolveu meu problema...
porém... o cliente acaba de me atochar o dedo novamente...
ele vai querer que tem apenas o curso 2 e o 3
ou quem tem apenas o 3 o 4 e o 5
dá licença!!!!!
vou vender tapioca no terminal de onibus!!!!
vou ter menos dor de cabeça...
Obriagdo amigos...
a luta continua!!!!!
tente assim:
select nome,curso, count(curso) from Tabela where curso in (3,4,5) group by nome,curso having count(curso)=1
select nome,curso, count(curso) from Tabela where curso in (3,4,5) group by nome,curso having count(curso)=1
SELECT nome, curso, status
FROM Table1
where nome not in (select nome from table1 where curso <> 2 or 3 or 4)
------------------------------------------------------------------------------------------
SELECT nome, curso, status
FROM Table1
where nome not in (select nome from table1 where curso <> 2 or curso <> 3 or curso <> 4)
---------------------------------------------------------------------------------------------------------
se desse para você posta a base de dados ajudaria muito para ter uma visão melhor do
que você que fazer.
FROM Table1
where nome not in (select nome from table1 where curso <> 2 or 3 or 4)
------------------------------------------------------------------------------------------
SELECT nome, curso, status
FROM Table1
where nome not in (select nome from table1 where curso <> 2 or curso <> 3 or curso <> 4)
---------------------------------------------------------------------------------------------------------
se desse para você posta a base de dados ajudaria muito para ter uma visão melhor do
que você que fazer.
Tópico encerrado , respostas não são mais permitidas