select avançados

16/09/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?

Thiane

Respostas

17/09/2010

Milton França

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?
Responder Citar

17/09/2010

Thiane

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.
Responder Citar

17/09/2010

Wilson Paulista...!!!

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

Tem uma apostila bem explicativa.

Espero ter colaborado.
Responder Citar

17/09/2010

Thiane

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

17/09/2010

Milton França

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    
Responder Citar

17/09/2010

Thiane

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
Responder Citar

17/09/2010

Eriley Barbosa

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

17/09/2010

Ader Santos Currículo

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?
Responder Citar

18/09/2010

Milton França

É 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"
Responder Citar

18/09/2010

Milton França

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
Responder Citar

14/08/2012

Getulio Fraga

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.
Responder Citar

26/09/2012

Marcos Kruger Currículo

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.
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)
Responder Citar

27/09/2012

Alisson

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

16/10/2012

Lualmeidasouza

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.
Responder Citar

16/10/2012

Tiago Currículo

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.
Responder Citar