SQL - AYUDA Subconsulta Like

 
Vista:

AYUDA Subconsulta Like

Publicado por Armando (6 intervenciones) el 27/09/2006 00:52:57
que tal necesito su ayuda esto es lo que sucede tengo una tabla que contiene el campo proveedores pero el formato es asi por ejemplo:
WALDOS SA DE CV o MART WALDOS
y luego tengo otra tabla con el mismo campo de proveedor pero solo viene WALDOS O entonces si nada mas fuera un dato podria hacerlo con un LIKE
asi:

SELECT * FROM TABLA1 WHERE PROVEEDOR LIKE '%WALDOS%'

o si fueran exactamente las mismas formas de la descripcion no habria problema

SELECT * FROM TABLA1 WHERE PROVEEDOR IN (SELECT PROVEEDOR FROM TABLA2)

pero no es asi entonces necesito hacer una combinacion de las dos y no se hacerlo les agradezco cualquier ayuda gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:AYUDA Subconsulta Like

Publicado por Isaías (5072 intervenciones) el 27/09/2006 01:45:48
--CREATE TABLE #TABLA1 (PROVEEDOR VARCHAR(100))
--CREATE TABLE #TABLA2 (PROVEEDOR VARCHAR(50))
--
--INSERT INTO #TABLA1 VALUES('WALDOS SA DE CV')
--INSERT INTO #TABLA1 VALUES('MART WALDOS')
--INSERT INTO #TABLA1 VALUES('SEARS BRASIL')
--INSERT INTO #TABLA1 VALUES('SEARS ARGENTINA')
--
--INSERT INTO #TABLA2 VALUES('WALDOS')
--INSERT INTO #TABLA2 VALUES('SEARS')
--
--
--DECLARE @PROVEEDOR VARCHAR(50)
--SET @PROVEEDOR = 'SEARS'
--SELECT * FROM #TABLA1 WHERE PROVEEDOR LIKE (SELECT '%'+PROVEEDOR+'%' FROM #TABLA2 WHERE PROVEEDOR = @PROVEEDOR)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:AYUDA Subconsulta Like

Publicado por armando (6 intervenciones) el 27/09/2006 01:51:55
muchas gracias pero no funciona ya que el proveedor no puede ser uno solo en este ejemplo no solo es sears es una lista completa y like no soporta una lista
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:AYUDA Subconsulta Like

Publicado por Isaías (5072 intervenciones) el 27/09/2006 20:14:53
El script que te mande, ¿no funciona?, o no es ese el requerimiento..........
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:AYUDA Subconsulta Like

Publicado por armando (6 intervenciones) el 27/09/2006 20:21:06
Si funciona pero no es el requerimiento de hecho me supongo que tengo que usar cursores y mas o menos tengo esto pero no funciona bien se cicla el cursor y no se mueve de registro

ALTER PROCEDURE spValidacionDSD
AS
BEGIN

DELETE FROM TEMP_DSD_XLS
DECLARE @PROVEEDOR VARCHAR(50)

DECLARE CURSOR_PROV CURSOR
FOR SELECT DISTINCT PROVEEDOR
FROM DSD_MUESTRA
WHERE PROVEEDOR IS NOT NULL
ORDER BY PROVEEDOR
OPEN CURSOR_PROV

FETCH NEXT FROM CURSOR_PROV
INTO @PROVEEDOR

WHILE (@@FETCH_STATUS = 0) BEGIN

INSERT INTO TEMP_DSD_XLS
SELECT
PO_TIENDA,
ORDER_NO AS PO,
LOCATION AS TIENDA,
SUP_NAME AS PROVEEDOR,
'POs Existentes' as STATUS_DESC ,
9 as STATUS_ID,
GETDATE() AS FECHA_VAL
FROM RMS_POS
WHERE
STATUS = 'C'
AND SUP_NAME LIKE '%NESTLE%'
-- AND SUP_NAME LIKE '%'+@PROVEEDOR+'%'
AND PO_TIENDA IN
(
SELECT SQ.PO_TIENDA AS PO_TIENDA FROM
(
SELECT PO_TIENDA, COUNT(*) AS CONTEO FROM DSD_MUESTRA
GROUP BY PO_TIENDA
HAVING COUNT(*) = 1
) SQ
)

END

CLOSE CURSOR_PROV
DEALLOCATE CURSOR_PROV

END
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:AYUDA Subconsulta Like

Publicado por Isaías (5072 intervenciones) el 28/09/2006 18:24:31
No se "mueve" el registro, porque te hace falta un FETCH NEXT dentro de tu WHILE:

FETCH NEXT FROM CURSOR_PROV INTO @PROVEEDOR
END

CLOSE CURSOR_PROV
DEALLOCATE CURSOR_PROV
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:AYUDA Subconsulta Like

Publicado por armando (6 intervenciones) el 28/09/2006 20:14:38
Muchas gracias Isaias ya lo habia identificado gracias de todos modos pero como sucede en todo trabajo eso ya no iba a ser necesario por que iba a botar los registros si por cualquier cosa el usuario tecleaba mal el proveedor aunque fuera LIKE
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar