SQL - SCALAR FUNCTIONS EN CONSULTAS

 
Vista:

SCALAR FUNCTIONS EN CONSULTAS

Publicado por Diego (3 intervenciones) el 26/08/2010 22:57:11
Buenas

es posible incoorporar funciones escalares en consultas?
algo como esto.

Select
Fin.OpportunityID,
OperatingUnitDesc,
ClientServiceGroupDesc
dbo.fnGetOSPinCRNameFlag(OperatingUnitDesc) --(funcion)
from ZZZ

Saludos
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
Imágen de perfil de roger

RE:SCALAR FUNCTIONS EN CONSULTAS

Publicado por roger (93 intervenciones) el 26/08/2010 23:16:06
en que motor de base de datos??
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:SCALAR FUNCTIONS EN CONSULTAS

Publicado por Diego (3 intervenciones) el 27/08/2010 06:10:11
sql server 2008

la verdad no logro hacerlo funcionar.

Me dice que el nombre de columna o la funcion escalar es ambiguo

pero yo no le encuentro ambiguedad alguna...
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
Imágen de perfil de roger

RE:SCALAR FUNCTIONS EN CONSULTAS

Publicado por roger (93 intervenciones) el 27/08/2010 14:13:52
y puedes utililzar la funcion sola??
select dbo.fnGetOSPinCRNameFlag(valorParametro)

si esto te funciona no deberias tener problema en llamarlo tambien desde un select a una tabla.
El error exacto que te aparece es cual???

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
sin imagen de perfil
Val: 806
Bronce
Ha mantenido su posición en SQL (en relación al último mes)
Gráfica de SQL

RE:SCALAR FUNCTIONS EN CONSULTAS

Publicado por Leonardo Josué (1173 intervenciones) el 27/08/2010 16:10:43
Buenos días Diego,

Estás seguro que la función que tienes definida funciona?, tal como te lo comenta Roger si pones esto:

select dbo.fnGetOSPinCRNameFlag(valorParametro)

por supuesto asignándole un valor a valorParametro te debería regresar un resultado.

El error que comentas de columna o función escalar ambiguo puede ocurrir porque estás haciendo referencia a un campo que existe en dos tablas. Esta es la consulta que pusiste como ejemplo:

Select
Fin.OpportunityID,
OperatingUnitDesc,
ClientServiceGroupDesc
dbo.fnGetOSPinCRNameFlag(OperatingUnitDesc) --(funcion)
from ZZZ

Aquí de entrada hay varios detalles, primero, en la sección FROM sólo mencionas una tabla ZZZ, pero en tu select haces referencia a un campo Fin.OpportunityID, ¿de donde obtienes Fin?.

Segundo, es posible que la consulta esté incompleta y efectivamente también hagas uso de una tabla llamada Fin, en este caso debes tener cuidado de que los campos OperatingUnitDesc y ClientServiceGroupDesc no aparezcan en más de una tabla. si es así, debes especificar de qué tabla quieres que se obtengan los datos, por ejemplo ZZZ.OperatingUnitDesc o Fin.ClientServiceGroupDesc

Finalmente, faltaría colocar una coma antes de invocar a tu función, justo después del campo ClientServiceGroupDesc.

Te recomiendo que revises estos detalles y si continuas con problemas pon la consulta tal y como la estás tratando de ejecutar, para ver si hay algún otro detalle.

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