Pregunta

Estoy construyendo una aplicación en Cold Fusion que tiene una conexión de base de datos SQL Server. Necesito registros grupales y solo devolver el primero en el grupo. Escribí la siguiente consulta en Coldfusion.

SELECT FIRST(ID)
FROM table
GROUP BY NAME

Que está devolviendo el siguiente error:

Macromedia] [controlador SQLServer JDBC] [SQLServer] 'Primero' no es un nombre de función incorporado reconocido.

¿Es la forma de utilizar la primera función en una consulta de FryFusion?

¿Existe una forma alternativa de lograr esto?

*No tengo acceso directo a la base de datos. Solo un acceso a la conexión de datos de fusión en frío

¿Fue útil?

Solución

FIRST no es válido en SQL Server (debe estar pensando en el acceso). Quizás te refieres:

SELECT NAME, MIN(ID)
FROM dbo.table
GROUP BY NAME;

En SQL Server "Denali" podrá usar FIRST_VALUE/LAST_VALUE junto con las funciones de ventanas.

Otros consejos

El primero y el último no existen en SQL Server 2005 o 2008, pero en SQL Server 2012 hay una función FirstValue, LastValue. Traté de implementar el agregado primero y durar para SQL Server 2005 y llegué al obstáculo de que SQL Server garantiza el cálculo del agregado en un orden definido. (Consulte el atributo sqluserDefinedAgregateAtTribute qué elementos están agregados.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top