Este foro usa cookies
Este foro utiliza cookies para almacenar su información de inicio de sesión si está registrado y su última visita si no lo está. Las cookies son pequeños documentos de texto almacenados en su computadora; las cookies establecidas por este foro solo se pueden usar en este sitio web y no representan ningún riesgo de seguridad. Las cookies en este foro también rastrean los temas específicos que ha leído y la última vez que los leyó. Si Ud. continúa navegando, entenderemos que acepta todas las cookies.

Se almacenará una cookie en su navegador, independientemente de la elección, para evitar que se le vuelva a hacer esta pregunta. Podrá cambiar la configuración de sus cookies en cualquier momento utilizando el enlace en el pie de página.

Borrar este aviso
El foro antiguo se encuentra accesible desde https://foro.gambas-es.org en modo de solo lectura.

Calificación:
  • 0 voto(s) - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5

Update Table con WHERE RowNun
#1

Hola

Estoy derrotado. Acabo tirar la toalla y no se si cortarme las venas o dejarmelas largas. Ayuda po favor.

Bueno después de mi gran derrota pido a un semi-Dios que me ayude.

Os describo el problema:
Tengo:
El campo RowNum
SELECT ROW_NUMBER() OVER (ORDER BY Descripción ASC) RowNum, * FROM Inmovilizado GROUP BY Descripción ORDER BY Descripción ASC;

Base de datos SQLite3
Tabla: Inmovilizado
Acción: Update (Este es mi problema a solucionar)
Where: Pretendo buscar el registro en la tabla Inmovilizado que tengo ROW_NUMBER() = RowNum

Pero, ¿Como?

Esto es algo parecido que funciona pero me funciona para buscar, osea, en un SELECT:

Select * From (Select ROW_NUMBER() OVER (ORDER BY Descripción ASC) RowNum, Estado, FechaEstado From Inmovilizado) t WHERE RowNum = 1;

En fin, me ayuda.

Gracias y suerte que es muy necesaria para el valiente que lo haga.
#2

Hola gambafeliz.

Si te refieres a poder actualizar un registro de la tabla utilizando fila de la tabla, prueba con esto:
 
Código:
UPDATE inmovilizado SET descripcion='ABC' WHERE rowid=3

Saludos.
#3

Gracias omoreno

Efectivamente ayer lo resolví así como tu propones, poco después de poner la pregunta. Pero no lo puse como resuelto la pregunta, por que como el hilo pide una solución determinada y no tu propuesta, pues, lo dejé para saber la solución a la propuesta en el hilo.

Saludos, joven
#4

Buenas yo así lo que veo es que el row_number() o rowid se genera en memoria de la propia transacionalidad, por tanto mi opinión, o lo que yo implementaría sería realizar el ordenamiento y hacer un select del row_number() para obtener tu Id de tabla y posteriormente updatear sobre ese ID la tabla.
Yo, primero no le veo diferencia a querer hacerlo con el row_number() que tampoco se si se podrá, pero se pueda o no, veo factible la obtención-actualización en dos pasos.
Si hablasemos de SGBD más completos te diría de montar un SP o un Package para que esa misma funcionalidad se implementase y entonces tú llamando desde tu backend obtendrías el resultado directamente de la trasacción final row_affected.
Al tratarse de una DB que se ejecuta con las particularidades que tiene, bloqueo para concurrencia, no SP, no TRG ...etc ..pues tenemos que apañarnos con lo que hay.
Saludos.


Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)