FoxPro/Visual FoxPro - SELECT - SQL

 
Vista:

SELECT - SQL

Publicado por Ricardo Zevallos (2 intervenciones) el 07/04/2005 19:33:58
Estoy utilizando una sentencia SELECT-SQL, tal como sigue:

"SELECT (ALLT(last_name)+' '+ ALLT(first_name)) AS name, gin, numero, date_examed, ;
FROM employee ;
WHERE YEAR(date_examed)=lcYear AND international=lcType AND retired=0 ORDER BY name ;
INTO CURSOR lstemployee"

lo que necesito es una columna que me muestre un numero secuencial por cada registro cuando realize el filtro por año, por ejm: si tengo 5 registros en el 2005 debera mostrar en la columna item, 1,2,3,4,5... si tengo 3 registros en el 2004, deberá mostrarme 1,2,3

Gracias de antemano

Ricardo Zevallos

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:SELECT - SQL

Publicado por Roman Suazo (2723 intervenciones) el 07/04/2005 22:34:02
Ordenalo por año tambien, despues con un SCAN podrias ir agregando los numeros secuencialmente, al primer registro le pones uno, recoges los datos año y numero correspondiente a ese registro y lo comparas con el siguiente registro, si es el mismo año incrmentas el numero si es otro año, resetas el numero a 1 asi sucesivamente... se puede hacer sin ordenar la tabla por año pero el proceos se tardaria mas..
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:SELECT - SQL

Publicado por Roman Suazo (2723 intervenciones) el 07/04/2005 22:51:53
Roman, gracias por contestarme, lo que quiero es dentro del SELECT-SQL tener una columna que me muestre el numero secuencial.
Estuve probando ya encontré la solucion, he creado una columna llamada item donde es un funcion definida por el usuario, el cual es un contador

"SELECT (ALLT(last_name)+' '+ ALLT(first_name)) AS name, gin, numero, date_examed, thisform.nrow() AS item ;
FROM emplsort ;
WHERE YEAR(date_examed)=lcYear AND international=lcType AND retired=0 ORDER BY name ;
INTO CURSOR lstemployee"

donde nrow() es un metodo en la forma

PuItem = PuItem + 1
RETURN PuItem

me funcionó
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:SELECT - SQL

Publicado por Roman Suazo (2723 intervenciones) el 08/04/2005 01:37:59
Ah, ok, te habia entendido que ibas a tener resultados de diferentes años en la misma consulta. Si solo tienes un año por consulta, lo que haces es perfecto...
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:SELECT - SQL

Publicado por israel (60 intervenciones) el 08/04/2005 00:27:43
prueba esto

crea una funcion como el ejemplo

function prueba
a=a+1
return (a)
ENDFUNC

la variable a debe ser global y la inicializas con cero

y añade a tu consulta el nombre de la funcion

ya lo probe y funciona

israel
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