Ir para conteúdo

POWERED BY:

Arquivado

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

Morpheus#2005

Select Diferenciado

Recommended Posts

Galera,Essa query precisa fazer o seguinte..Banco ANumero,Dat_ini,Dat_fim,ObsBanco BCodigo---------------------------------------SELECT Numero, dat_ini,Dat_fimFROM Banco AWHERE (SELECT codigos FROM Banco B WHERE A.OBS LIKE '%' + 'B.CODIGOS' + '%')ResultadoNumero| Dat_Ini | Dat_Fim | Codigo11111 | 12/06/2006 | 12/06/2006 | 123Obrigado pela ajuda galera..

Compartilhar este post


Link para o post
Compartilhar em outros sites

falai Morpheus

 

putz naum entendi muito bem, tenta isso, se não for posta uns dados de exemplos reais que você tem ae pra essas tabelas

 

SELECT 	Numero, dat_ini,Dat_fimFROM 	#BancoA AWHERE A.OBS in (SELECT codigo FROM #BancoB WHERE Codigo LIKE '%' + A.OBS + '%')

 

t+

Compartilhar este post


Link para o post
Compartilhar em outros sites

E ai cara belza...Ficou assim..mas ainda naum gerou resultados..SELECT NUM_TT, DAT_ABERTURA, DAT_FECHAMENTOFROM abril AWHERE (OBSERVAÇÃO IN (SELECT codigos FROM códigos b WHERE b.Codigos LIKE '%' + A.OBSERVAÇÃO + '%'))O que pode ser dessa vez..AbraçosEstrutura ::Banco AbrilNum | NumericoDat_Ini | DatetimeDat_Fim | DatetimeObs | NvarcharBanco CódigosCódigos | CHAR------------------------------------------Tabela AbrilNum | Dat_Ini | Dat_ Fim | Observaçao123 27/06/2006 27/06/2006 Maria foi na feira TT666 e comprou 2 maças.Tabela Códigos ..Códigos |TT666Resultado :::Num | Dat_Ini | Dat_Fim | Código123 27/06/2006 27/06/2006 TT666---------------------------------------------Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Morpheus, tenta a query abaixo:SELECT a.num, a.dat_ini, a.dat_fim, c.codigosFROM abril a, codigos cWHERE UPPER(a.obs) like '%' + UPPER(RTRIM(LTRIM(c.codigos))) + '%' Fiz ela aqui, e funcionou. OBS.: Quando você fala "Banco Abril", na verdade é a tabela Abril, correto? As duas tabelas estão no mesmo banco!!!! []'s. CabeloBH

Compartilhar este post


Link para o post
Compartilhar em outros sites

ae Cabelo legal a dica, naum tinha pensado nisso, seria como fazer um inner join com o like

 

o resultado é o mesmo:

SELECT a.Numero, a.dat_ini, a.dat_fim, c.codigoFROM #BancoA ainner join #BancoB c on UPPER(a.obs) like '%' + UPPER(RTRIM(LTRIM(c.codigo))) + '%'

t+

Compartilhar este post


Link para o post
Compartilhar em outros sites

Po galera..sem querer ser chato..Mas estou com o seguinte problema ::Se tem os codigos :ETI3ETI3ETI3ETI30ETI30ETI30Ele conta ETI3 como 6 vezes..Tem jeito..???

Compartilhar este post


Link para o post
Compartilhar em outros sites

putz fodah hein... essas tabelas desnormalizadas são pra acabar msm....rsrwsrsr

 

uma "gamb" ai seria procurar com espaço no like '% ' + UPPER(RTRIM(LTRIM(c.codigo))) + ' %' e com espaço no campo, pra caso o codigo esteja no fim ou no inicio ' ' + UPPER(a.obs) + ' '

 

no exemplo abaixo, funcionou, verifica ae se isto ajuda ou se tem mais algum caso especifico

set nocount oncreate table #BancoA (Numero varchar(10), Dat_ini datetime, Dat_fim datetime, Obs varchar(200))create table #BancoB (Codigo varchar(10))insert into #BancoA (Numero,Dat_ini,Dat_fim,Obs) values ('1', getdate(), getdate(), 'Maria foi na feira TT666 e comprou 2 maças.')insert into #BancoA (Numero,Dat_ini,Dat_fim,Obs) values ('2', getdate(), getdate(), 'ETI3')insert into #BancoA (Numero,Dat_ini,Dat_fim,Obs) values ('3', getdate(), getdate(), 'ETI30')insert into #BancoA (Numero,Dat_ini,Dat_fim,Obs) values ('4', getdate(), getdate(), '789,123')insert into #BancoA (Numero,Dat_ini,Dat_fim,Obs) values ('5', getdate(), getdate(), '123,789, TT666')insert into #BancoB (Codigo) values ('TT666')insert into #BancoB (Codigo) values ('ETI3')insert into #BancoB (Codigo) values ('ETI2')SELECT a.Numero, a.dat_ini, a.dat_fim, c.codigoFROM #BancoA a, #BancoB cWHERE ' ' + UPPER(a.obs) + ' ' like '% ' + UPPER(RTRIM(LTRIM(c.codigo))) + ' %'SELECT a.Numero, a.dat_ini, a.dat_fim, c.codigoFROM #BancoA ainner join #BancoB c on ' ' + UPPER(a.obs) + ' ' like '% ' + UPPER(RTRIM(LTRIM(c.codigo))) + ' %'select CODIGO, (select count(*) from #BancoA A where A.OBS LIKE '%' + B.CODIGO + '%') from #BancoB Bdrop table #BancoA drop table #BancoB
good luck

 

 

t+

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tabelas Ok.. mas mesmo assim ainda naum funfa..o que pode ser...tá fogo pessoal.mesmo assim ele esta contando o ETI3 DUAS VEZES, no certo teria que ser uma vez só..Help-me

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.