greed Posted October 15, 2009 at 02:47 PM Report Share #291761 Posted October 15, 2009 at 02:47 PM Boas, Estou aqui com uma dúvida existencial, será que alguma alma me pode ajudar.. Tenho a seguinte tabela xpto: app_origem | app_destino | tipo_ligacao A | B | C B | A | C E | D | Z A | B | C Queria fazer uma query que me permitisse eliminar todas as entradas que tenham o mesmo tipo de ligação e cuja a aplicação de origem e destino estejam repetidas, quer na coluna app_origem quer na coluna app_destino. O resultado desta query seria o seguinte: A | B | C E | D | Z Acho que é óbvio que vai ter que ser usado o UNIQUE para remover entradas na tabela iguais. O problema é mesmo eliminar entradas com o mesmo tipo de ligação mas cuja app_destino e app_origem estejam trocadas. ? Se alguém pudesse ajudar, é que já estou Desde já obrigado. -- @pcbo Link to comment Share on other sites More sharing options...
Gooden Posted October 15, 2009 at 02:57 PM Report Share #291762 Posted October 15, 2009 at 02:57 PM Não entendi..... faz um exemplo porque axo que o exemplo esta errado :S Link to comment Share on other sites More sharing options...
greed Posted October 15, 2009 at 03:11 PM Author Report Share #291765 Posted October 15, 2009 at 03:11 PM Outro exemplo + simples: app_origem | app_destino | tipo_ligacao A | B | C B | A | C Como vêm são as mesmas aplicações só que o A e B estão trocados. Resultado: app_origem | app_destino | tipo_ligacao A | B | C Ou seja, a entrada com B | A | C é eliminada. Já está mais perceptível? Eu pretendo fazer esta query pois quero eliminar entradas que não me trazem informação útil. Não me interessa saber que A e B têm uma ligação C duas vezes...por isso, elimino uma destas entradas..agora, a questão é como.. 🙂 -- @pcbo Link to comment Share on other sites More sharing options...
Gooden Posted October 15, 2009 at 06:24 PM Report Share #291785 Posted October 15, 2009 at 06:24 PM o problema aqui e que os 2 iam ser eliminados a menos que fizesses um select top 1. porque a=a e b=b entao ele vai seleccionar os 2.... Link to comment Share on other sites More sharing options...
bruno1234 Posted October 15, 2009 at 08:36 PM Report Share #291803 Posted October 15, 2009 at 08:36 PM Assim como está é complicado. Se a coluna tivesse um id seria simples. Assim: select distinct a.origem, a.destino, a.tipo from Ligacoes a where not exists( select 1 from Ligacoes where a.origem = destino and a.destino = origem and a.tipo = tipo and a.id > id) Matraquilhos para Android. Gratuito na Play Store. https://play.google.com/store/apps/details?id=pt.bca.matraquilhos Link to comment Share on other sites More sharing options...
greed Posted October 16, 2009 at 09:54 AM Author Report Share #291869 Posted October 16, 2009 at 09:54 AM Thanks pela resposta. Tentei fazer em Access com o seguinte código mas retornou-me uma tabela vazia: SELECT DISTINCT a.ListaInterfaces.[APLICACAO ORIGEM] AS Expr1, a.ListaInterfaces.[APLICACAO DESTINO] AS Expr2, a.ListaInterfaces.[TIPO DE INTERFACE] AS Expr3 FROM ListaInterfaces AS a WHERE NOT EXISTS( SELECT 1 FROM ListaInterfaces WHERE Expr1 = ListaInterfaces.[APLICACAO DESTINO] AND Expr2 = ListaInterfaces.[APLICACAO ORIGEM] AND Expr3 = ListaInterfaces.[TIPO DE INTERFACE] AND a.ListaInterfaces.[iD] > ListaInterfaces.[iD] ); Algum erro berrante que salte logo à vista?! ? -- @pcbo Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now