Ir para conteúdo

POWERED BY:

Arquivado

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

brunoguitarman

Tem como tirar itens de uma consulta utilizando outra?

Recommended Posts

Tem como eu tirar itens de uma consulta utilizando outra, sem que ela seja uma subconsulta?

Estou com um problema aqui e tá meio complicado de resolver, aí eu pensei em algo tipo se pode fazer com o union, tipo, sei lá, uma consulta retorna isto:

 

1

2

3

 

E outra retorna

 

8

12

 

E fazendo um union entre as duas obtém como resposta isto:

 

1

2

3

8

12

 

Eu queria algo que pro caso de ter uma consulta com isto:

 

1

2

3

 

e outra com

 

2

3

 

Utilizando isso que estou perguntando, retornaria

 

1

 

Tem como fazer isso ou estou ficando louco?

Compartilhar este post


Link para o post
Compartilhar em outros sites

talvez ajá eu nao conheço muito de sql mas com as exeriencias que tive posso de tar uma dica

 

eu sei que tem como fazer tabelas temporarias no servidor

 

ai você cria uma tabela temp1 e temp2 cada um con o select que você queizer e depois da uma union nelas

mas pode ter um problema se ele trazerem os mesmos dados você tem que fazer um group by algo do tipo

espero ter te dado uma esperança nisso talvez aja uma maneira mais facil que eu nao conheça

 

valeu :D

Compartilhar este post


Link para o post
Compartilhar em outros sites

tem uma que eu não lembre se dá para usar no SQL, no oracle dá

dá uma tentadinha, não custa nada

 

select campo from tabela
exception
select campo from tabela

Compartilhar este post


Link para o post
Compartilhar em outros sites

tem uma que eu não lembre se dá para usar no SQL, no oracle dá

dá uma tentadinha, não custa nada

 

select campo from tabela
exception
select campo from tabela

A única coisa que achei foi um Except, mas ele só trabalha com conjuntos e ainda quando fui testar com o exemplo que tá no próprio help deu um erro lá: "[Microsoft][ODBC SQL Server Driver]Erro de sintaxe ou violação de acesso"

Compartilhar este post


Link para o post
Compartilhar em outros sites

Andei olhando a msdn library e lá diz que no sql server 2005 tem esse Except que funciona como o do Oracle, mas o sql server que eu uso aqui não é o 2005. Será que não tem outro modo?

Compartilhar este post


Link para o post
Compartilhar em outros sites

foi mal, era except e não exception (é força do hábito a outra expressão pois é usada em tratamento de erros)

 

Erro de sintaxe ou violação de acesso

qual foi a consulta que tu fez?

Compartilhar este post


Link para o post
Compartilhar em outros sites

foi mal, era except e não exception (é força do hábito a outra expressão pois é usada em tratamento de erros)

 

Erro de sintaxe ou violação de acesso

qual foi a consulta que tu fez?

 

Tentei fazer o que está no help:

 

Except
Finds the difference between two sets, optionally retaining duplicates.

Syntax
Except(«Set1», «Set2»[, ALL])

Remarks
Duplicates are eliminated from both sets prior to finding the difference. The optional ALL flag retains duplicates. Matching duplicates in «Set1» are eliminated and nonmatching duplicates are retained.

Example
This example

Except({Canada, [British Columbia], Mexico, [British Columbia], USA, Washington}, {Canada, Mexico, California})

returns 

{[British Columbia], USA, Washington}

and this example

Except({Canada, [British Columbia], Mexico, [British Columbia], USA, Washington}, {Canada, Mexico, California}, ALL)

returns 

{[British Columbia], [British Columbia], USA, Washington}.

Depois tentei também fazer tipo

 

Execpt ((select campo from tabela1),(select campo from tabela2))

Aí dava os seguintes erros:

 

Server: Msg 156, Level 15, State 1, Line 1

Incorrect syntax near the keyword 'except'.

Server: Msg 170, Level 15, State 1, Line 1

Line 1: Incorrect syntax near ','.

Server: Msg 170, Level 15, State 1, Line 1

Line 1: Incorrect syntax near ')'.

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.