Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

ACLR

[Resolvido] Select em mais de uma tabela usando Left Join

Recommended Posts

Ola galera, beleza, to com uma duvida aqui, eu preciso selecionar campos especificos de mais de uma tabela, pra isso to usando um select com left join mas ta dando um erro de sintaxe, como faz tempo q nao uso sql nao to sabendo encontrar esse erro, se alguem puder me dar uma ajuda ai eu agradeco.

 

Esse e o select:

select

Computer1.ComputerName,

Domain1.DomainName,

Group1.GroupName,

User1.UserName

from

ADComputer Computer1

left join

ADDomain Domain1

left join

ADGroup Group1

left join

ADUser User1

order by User1

 

E o erro q ta dando e esse:

Execução SQL: Incorrect syntax near the keyword 'order'.

 

PS: nao tem acento em nenhuma palavra pq to usando um notebook meio antigo e com o teclado completamente desconfigurado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Falta coisa na query, mais precisamente a condição de junção (join).

No caso abaixo o ON SOD.ProductID = P.ProductID

 

Exemplo

 

SELECT  TOP 100 P.ProductID, 
P.Name, 
P.ListPrice, 
P.Size, 
P.ModifiedDate, 
SOD.UnitPrice, 
SOD.UnitPriceDiscount,
SOD.OrderQty,
SOD.LineTotal 
FROM Sales.SalesOrderDetail SOD 
INNER JOIN Production.Product P 
ON SOD.ProductID = P.ProductID 
WHERE SOD.UnitPrice > 1000 
ORDER BY SOD.UnitPrice DESC

 

Fonte

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opa, valeu Motta, eu fui cacando aqui e consegui alterar mais um pouco o select, agora ta quase como eu quero, so falta adicionar umas coisas. O problema q eu to tendo agora é q preciso "juntar" 2 selects sendo q um deles já possui um select dentro dele. Basicamente isso:

 

Primeiro Select:

select Group1.GroupName, group1.distinguishedname, count (*),

(select count (*) from adcomputer c

left join adgroupmember gm2 on c.distinguishedname=gm2.memberdistinguishedname

where gm2.GroupDistinguishedName = group1.distinguishedname)

from

ADGroup Group1

left join

ADGroupmember gm on group1.distinguishedname=gm.groupdistinguishedname

Group by Group1.GroupName, group1.distinguishedname

order by Group1.GroupName

 

Segundo Select:

select Group1.GroupName, group1.distinguishedname, COUNT (*) 'Usuarios'

from

ADGroup Group1

left join

ADGroupmember gm on group1.distinguishedname=gm.groupdistinguishedname

left join

ADUser u on u.distinguishedName=gm.MemberDistinguishedName

group by Group1.GroupName, group1.DistinguishedName

order by Group1.GroupName

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opa, beleza Motta, entao cara, já consegui fazer o q eu queria, na vdd era exibir os resultados desses 2 selects em um formulário, isso sem usar union/union all pois os campos das tabelas eram diferentes, mas enfim, já consegui resolver esse problema, entao segue o codigo pra você dar uma olhada.

 

select Group1.GroupName 'Grupos', group1.distinguishedname, count (*) 'Quantidade de Membros', 
(select count (*) from adcomputer c 
left join adgroupmember gm2 on c.distinguishedname=gm2.memberdistinguishedname
where gm2.GroupDistinguishedName = group1.distinguishedname) 'Computadores',
(select count (*) from ADUser a
left join ADGroupMember gm2 on a.distinguishedName=gm2.MemberDistinguishedName
where gm2.GroupDistinguishedName = group1.distinguishedname) 'Usuarios'
from 
ADGroup Group1
left join
ADGroupmember gm on group1.distinguishedname=gm.groupdistinguishedname
Group by Group1.GroupName, group1.distinguishedname
order by Group1.GroupName

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.