Criar Subselect

SQL Server

29/01/2013

Boa noite pessoal,

como faço para criar um SubSelect,

entre duas tabelas ?
Anderson Mendes

Anderson Mendes

Curtidas 1

Melhor post

Joel Rodrigues

Joel Rodrigues

30/01/2013

Então, amigo, mas nos mostre a estrutura das tabelas e o que você precisa. Assim por cima fica muito difícil.
GOSTEI 2

Mais Respostas

Joel Rodrigues

Joel Rodrigues

29/01/2013

Opa, qual seria a necessidade e a estrutura das tabelas?
Assim facilita para vermos aí como vai ser a estrutura dessa consulta.
GOSTEI 1
Anderson Mendes

Anderson Mendes

29/01/2013

Joel,

a necessidade seria trazer o maior

o valor dentre duas tabelas que estou tentando

fazer um subselect.
GOSTEI 1
Alex Lekao

Alex Lekao

29/01/2013

Oi Anderson, Boa tarde!!!

Como o Joel disse, sem mais detalhes fica difícil lhe oferecer algo que seja eficiente, mas vou usar um exemplo de data de venda de cliente, não sei se ficara correto, pode ser que tenha erro na estrutura pq não testei, mas vamos la.

Select codcli,nome,(select max(cb.datavenda) from cabvenda as cb where cb.datavenda between '01.01.2012' and '31.12.2012' and cb.codcli = cl.codcli) from cliente.

Espero que iste te de um norte.

como disse não testes então pode conter algum erro.

Diga se conseguiu resolver e como foi.

Abraco.

Alex - Lekao
GOSTEI 0
Anderson Mendes

Anderson Mendes

29/01/2013

Então Alex,

pela sua estrutura não consegui resolver.

Tenho uma tabela para cadastro de endereço onde

preciso saber o maior percentual do atributo Perc_End,

daquele determinado cliente.

O select que estou realizando esta da seguinte forma abaixo:

SELECT CPF, LOGRADOURO, PERC_END FROM CLIENTE
WHERE CPF = '000000000000' AND SELECT MAX(PERC_END) FROM ENDERECO 


Isto esta me gerando erro. Como posso proceder para resolver ?
GOSTEI 0
Joel Rodrigues

Joel Rodrigues

29/01/2013

Seria isso:

SELECT CPF, LOGRADOURO, PERC_END FROM CLIENTE
WHERE CPF = '000000000000' AND PERC_END = (SELECT MAX(PERC_END) FROM ENDERECO)


Nesse caso você seleciona os campos da tabela cliente cujo registro possuir o campo CPF igual a '00000000000' e o campo PERC_END for igual ao maior valor de PERC_END na tabela de endereços.
GOSTEI 0
Ricardo Araujo

Ricardo Araujo

29/01/2013

GOSTEI 0
Ricardo Araujo

Ricardo Araujo

29/01/2013

desconsidere o mensagem Anterior,

Tem muito coisa no net, da uma olhada neste link abaixo:

https://www.devmedia.com.br/conceitos-e-exemplos-praticos-union-e-subquery-sql-server-2008-parte-1/19166

GOSTEI 0
Anderson Mendes

Anderson Mendes

29/01/2013

Valeu galera,

vocês são demais.

A dúvida foi sanada. Thanks!
GOSTEI 0
Mateus Serafim

Mateus Serafim

29/01/2013

Seria isso:

SELECT CPF, LOGRADOURO, PERC_END FROM CLIENTE
WHERE CPF = '000000000000' AND PERC_END = (SELECT MAX(PERC_END) FROM ENDERECO)


Nesse caso você seleciona os campos da tabela cliente cujo registro possuir o campo CPF igual a '00000000000' e o campo PERC_END for igual ao maior valor de PERC_END na tabela de endereços.





Poderia me ajudar em um caso parecido?
GOSTEI 0
Marcos P

Marcos P

29/01/2013

Parecido, mas não igual... certo ?

Descreva melhor os detalhes do seu caso e porque você não conseguiu resolver com as dicas desse post...
GOSTEI 0
Alex Lekao

Alex Lekao

29/01/2013

talves possa ser mais interessante abrir um novo post. rssrsr
GOSTEI 0
Mateus Serafim

Mateus Serafim

29/01/2013

Opa amigo, obrigado!


Mas consegui, desta forma


RECIBO RECISAO


SELECT DISTINCT

F.CODCOLIGADA,
'1' AS TIPO_COLABORADOR,
F.CHAPA,
F.DTPAGTO,
' 'AS TIPO_EVENTO,
' 'AS CODIFO_TABELA_EVENTO,
F.CODEVENTO,
F.REF,
F.VALOR


FROM PFFINANC F, PFUNC P
--LEFT OUTER JOIN PFUNC P ON F.CODCOLIGADA=P.CODCOLIGADA AND F.CHAPA=P.CHAPA

WHERE F.CODCOLIGADA='1'
--AND F.CHAPA = '01094'
AND P.CODCOLIGADA = F.CODCOLIGADA
AND P.CHAPA = F.CHAPA
AND F.NROPERIODO = 2
ORDER BY F.CHAPA DESC
GOSTEI 0
Mateus Serafim

Mateus Serafim

29/01/2013

estava fazendo tempestade em copo d'agua.....
GOSTEI 0
POSTAR