SQL - subconsultas en SQL-Server

 
Vista:

subconsultas en SQL-Server

Publicado por Antonio (7 intervenciones) el 22/01/2004 12:19:04
Hola amigos. Tengo que hacer funcionar una subconsulta dentro de una macro-sentencia y me esta pasando algo muy raro; la subconsulta por separado funciona OK pero immersa en la sentencia no. Os ilustro:

PORQUE ESTO SI QUE FUNCIONA Y ME RETORNA LOS CORRESPONDIENTES REGISTROS:

(SELECT TVA.NumeroExpedient FROM
(SELECT VA.NumeroExpedient, CONVERT(FLOAT, VA.Valor) AS ValorFloat
FROM tblVariablesExpedient AS VA
WHERE VA.NomVariable LIKE '%treballador%' AND ISNUMERIC(VA.Valor)=1
) AS TVA
WHERE TVA.ValorFloat <'8'
)

PERO ESTO OTRO NO FUNCIONA PUES ME DICE QUE NO PUEDE CONVERTIR VARCHAR A FLOAT???:

SELECT * FROM
(SELECT TVA.NumeroExpedient FROM
(SELECT VA.NumeroExpedient, CONVERT(FLOAT, VA.Valor) AS ValorFloat
FROM tblVariablesExpedient AS VA
WHERE VA.NomVariable LIKE '%treballador%' AND ISNUMERIC(VA.Valor)=1
) AS TVA
WHERE TVA.ValorFloat <'8'
) AS TEMPTABLE

FIJAOS QUE ES EXACTAMENTE LA MISMA CONSULTA PERO ESTA VEZ IMMERSA EN OTRA.

MUCHAS 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:subconsultas en SQL-Server

Publicado por Antonio (7 intervenciones) el 22/01/2004 13:41:51
soy yo mismo.

lo he arreglado cambiando una de las anidaciones priorizando la resolucion de las operaciones booleanas... de la siguiente manera:

SELECT VA.NumeroExpedient
FROM tblVariablesExpedient AS VA
WHERE (VA.NomVariable LIKE '%treballador%') AND (ISNUMERIC(VA.Valor)=1 AND CONVERT(FLOAT, VA.Valor)<'8')

Espero que, igual que a mi, esto os sirva para algun dia.

Saludos.
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