Pessoal,Nas proximas publicacoes utilizarei o banco de dados exemplo que a Microsoft disponibiliza chamado AdventureWorks. Voces pode fazer o download dele no meu google drive aqui ou diretamente no site da microsoft, aqui . Para fazer a instalacao do banco e simples, basta seguir os passos abaixo:Descompactar o arquivo;Copiar os arquivos AdventureWorks2008_Data.mdf e AdventureWorks2008_Log.ldf para C:\Program Files\Microsoft SQL Server\MSSQL10.SQLEXPRESS\MSSQL\DATA;No Sql Server Management Studio conecte a sua instancia na janela Object Explorer;No no "Banco de dados" clique com o direito em "Anexar...";Clique em Adicionar escolha AdventureWorks2008_Data.mdf e depois clique em OK;Novamente clique em Adicionar escolha AdventureWorks2008_Log.ldf e depois clique em OK;Depois clique em OK novamente para fechar a janela "Anexar Banco de Dados"Esse processo foi feito no Sql server 2008, mas acredito que o processo seja semelhante nas outras versoes. Qualquer duvida e so comentar. Em banco de dados normalizados, as informacoes necessarias para um unico conjunto de dados podem estar localizadas em mais de uma tabela. Para suprir essa necessidade, utilizamos o operador JOIN.Existem varios tipos de operadores JOINs, cada um com seu proposito dentro desse contexto de juncao de tabelas. Os operadores sao:INNER, LEFT OUTER, RIGHT OUTER, FULL OUTER, e CROSS.Neste post vamos falar especificamente do operador INNER. Quando desejamos fazer juncoes entre tabelas, precisamos definir as tabelas que serao relacionadas, o tipo de operador JOIN que sera utilizado e o padrao que sera utilizado para retonar os registros das tabelas. No exemplo abaixo (executado no banco Adventure Works) as tabelas sao: "HumanResources.Employee" e "Person.Person", o operador e "INNER JOIN" e a condicao ou padrao e "HumanResources.Employee.BusinessEntityID = Person.Person.BusinessEntityID"SELECT FirstName,LastName,JobTitle,VacationHours,SickLeaveHoursFROM HumanResources.Employee INNER JOIN Person.PersonON HumanResources.Employee.BusinessEntityID = Person.Person.BusinessEntityID;Quando nao especificamos o tipo de JOIN (FROM HumanResources.EmployeeJOIN Person.Person) o Sql Server adota o INNER JOIN como padrao.Na clausula da condicao estamos especificando o nome completo (schema.tabela.coluna) da coluna para evitar ambiguidade, visto que possuem o mesmo nome e estao em ambas as tabelas.Mas qual a definicao do INNER JOIN? Basicamente ele retorna os registros das tabelas especificadas que satisfacao a condicao. So serao retornados os registros da tabela Employee que tenha o valor do seu campo BusinessEntityID referenciado na tabela Person no campo BusinessEntityID. Execute a query acima e veja o resultado. O registro de Employee que nao tiver nenhuma referencia em Person nao sera retornado e vice-versa.No exemplo acima o SELECT possui apenas 2 tabelas, porem o INNER JOIN pode ser utilizado N vezes seguindo a regra descrita acima. Na condicao do INNER JOIN utilizamos os campos que representam a chave primaria e estrangeira das tabelas de modo a garantir a integridade referencial dos dados. Alem disso a condicao especificada possui apenas uma regra mas pode existir N regras tambem, vejamos o exemplo abaixo:SELECT FirstName,LastName,JobTitle,VacationHours,SickLeaveHoursFROM HumanResources.Employee EINNER JOIN Person.Person P ON E.BusinessEntityID = P.BusinessEntityID and VacationHours > 30INNER JOIN HumanResources.EmployeeDepartmentHistory EH ON EH.BusinessEntityID = E.BusinessEntityID;Versao do Sql Server utilizada:Microsoft SQL Server 2008 (SP3) - 10.0.5512.0 Estudando a documentacao do Sql Server (Books online) sempre nos deparamos com o termo "expressao". Mas o que vem a ser esse termo? De um modo geral podemos sintetizar o significado dessa palavra da seguinte forma:"E uma