Array
(
)

select avançados

Thiane
   - 16 set 2010

Bom dia. Gente eu preciso aprender select avançado, para poder trabalhar em uma empresa de alimentos, onde dentro do select presicar ter relatorios com datas e somas.   Eu faço o curso Sistemas para Internet estou no 4º semestre, dei banco de dados no 3º semestre, mas estudei mais o basico, criação de tabela, select simplis.   Tem como vcs me ajudarem?

Milton França
   - 17 set 2010

Bom dia Thiane, me diga primeiro o que é pra vc um SELECT simples, tem como vc colocar um exemplo pra eu saber apartir de qual ponto posso te ajudar?

Thiane
   - 17 set 2010

select * from cadastro  where Nome = joao and endereço = rua jose   select * from vendas where compra <2 and numero = 1     é esse tipo de select que eu eu sei, com atualizar, deletar, apagar essas coisas. mas o seletc avanço sei quase nada.   Obrigada pela sua atenção.

Wilson Paulista...!!!
   - 17 set 2010

De uma olhada neste link http://ultradownloads.uol.com.br/download/Apostila-de-SQL-Server/

Tem uma apostila bem explicativa.

Espero ter colaborado.

Thiane
   - 17 set 2010

Valeu Wilson. Vou dar uma olhadinha depois darei o retorno. Bjus

Milton França
   - 17 set 2010

Vamos começar da forma mais simples até atingirmos um nível mais complexo:   Lista de colunas da cláusula SELECT   Ex. 1 Recuperar o nome dos alunos de cada curso e nome do curso SELECT Aluno.Nome, Curso.Nome FROM Aluno, Curso WHERE Aluno.CodCurso = Curso.CodCurso   Na Cláusula WHERE estou adicionando a condição para garantir que os alunos mostrados tem alguma referencia de algum curso (no caso CodCurso) da tabela Curso.   Lista dos Alunos aprovados e o uso de Literal como coluna Ex. 2 SELECT A.Nome As 'Aluno', 'Aprovado' As 'Situação' FROM Aluno A, Turma T WHERE A.Num_Matricula = T.Num_Matricula AND T.media >= 7   A Cláusula WHERE permite mostrar os alunos que tem matrícula e o operador lógico AND vai garantir a exibição somente dos alunos que além de ter matrícula terá que ter média igual ou superior que 7.   Observe que neste exemplo estou alterando os nomes dos cabeçalhos das colunas.   Mostrar nome o dia e mes de nascimento dos alunos SELECT Nome, DAY(DataNascimento) As 'Dia', MONTH(DataNascimento) As 'Mês' FROM Aluno WHERE CodCurso = 111   Neste caso a cláusula WHERE filtrará o resultado mostrando apenas os alunos que estão no determinado curso.     veja se está sendo útil, daí eu continuarei... té mais    

Thiane
   - 17 set 2010

Nilton esse 'AS" é do comando mesmo do sql? ex:  SELECT Nome, DAY(DataNascimento) As 'Dia', MONTH(DataNascimento) As 'Mês' FROM Aluno WHERE CodCurso = 111

Eriley Barbosa
   - 17 set 2010

Thiane esse as pode ser suprimido: SELECT Nome, DAY(DataNascimento) Dia, MONTH(DataNascimento) Mes FROM Aluno WHERE CodCurso = 111

Ader Santos
|
MVP
Pontos: 100
    17 set 2010


Citação:
Nilton esse 'AS" é do comando mesmo do sql? ex:  SELECT Nome, DAY(DataNascimento) As 'Dia', MONTH(DataNascimento) As 'Mês' FROM Aluno WHERE CodCurso = 111
Thiane o 'AS' é um comando do SQL para nomear o resultado de uma expressão. Neste exemplo quando aparecer o resultado deste SELECT, na expressão DAY(DataNascimento) o título da coluna vai ser 'Dia", e da expressão MONTH(DataNascimento) o título da coluna será 'Mês'. Ok?

Milton França
   - 18 set 2010

É isto mesmo, caro Eder, este "As" eu costumo dizer para os meus alunos que trauzido significa "Como" então serve para trocar o nome do cabeçalho da coluna para o nome sugerido logo após a referencia "As"

Milton França
   - 18 set 2010

Agora usando o DISTINCT   Ex. SELECT Curso.Nome As 'Curso' FROM Aluno, Curso WHERE Aluno.CodCurso = Curso.CodCurso   O objetivo deste SELECT é recuperar todos os cursos com alunos inscritos, porém haverá cursos repetidos nos resultados desta pesquisa, para evitar estes registros duplicados usaremos o exemplo seguinte:   Ex. SELECT DISTINCT Curso.Nome As 'Curso' FROM Aluno, Curso WHERE Aluno.CodCurso = Curso.CodCurso

Getulio Fraga
   - 14 ago 2012

Ok, eu até já consigo fazer select destes tipos, mas tenho dificuldades em procurar por uma referência nula. Por exemplo, e seu precisasse saber quais cursos não há alunos inscritos?

Obrigado.

Kruger
   - 26 set 2012

Existe muitas formas de fazer consultas SQL, entender o que se está fazendo principalmente a lógica feita é o caminho para conseguir aprender como montar consultas.

Trazer curso sem alunos inscritos.
#Código

Exemplo 1:
select Curso.* from Curso where Curso.codCurso not in(select Aluno.CodCurso from Aluno)

Exemplo 2:
select Curso* from Curso where
not exists(select top 1 1 from Aluno where Aluno.codCurso = Curso.codCurso)

Alisson
|
MVP
Pontos: 3400
    27 set 2012

Select avançado varia muito do que vai necessitar.
Pois existem varios tipos de selects.
O que necessitaria nesse caso.

Lualmeidasouza
   - 16 out 2012

Oi Thianne, boa tarde.

Acho que os colegas já deram bastante dicas.

Também é possível construir subconsultas (subqueries), openrowsets, unions, procedures, views, functions, cursores etc... vai depender da sua necessidade e lógica dos relatórios que precisa construir.

Segue um link excelente - http://www.criarweb.com/sql/

Espero ter ajudado. Boa sorte.

Tiago
|
MVP
Pontos: 120
    16 out 2012

Procure entender bastante a lógica do sql, como realizar as consultas, funções,subqueries e etc.... dai quando estiver preparada, você poderia ver também a questão da linguagem extendida. Por exemplo:T-SQL,PL-SQL.