
Update por While
Publicado por OSCAR (1 intervención) el 08/04/2015 16:34:01
Buenas tardes,
Antes de nada decir que necesito ayuda con un problema que tengo, no pido un codigo, solo ayuda para poder finalizar mi tarea.
Tengo una tabla "INCIDENCIASBKP" donde hay un registro de incidencias, solo necesito trabajar con dos campos "GRUPO / RESPONSABLES".
Después tengo otra tabla "GRUPOSUSERS" y los campos son "DA / USUARIO"
incidenciasbkp gruposusers
-------------------- -------------------
grupo da
responsables usuario
Cuando se crea una incidencia en la tabla "INCIDENCIASBKP" se crean todos los datos, y en grupo, el login del usuario.
Es una aplicación externa, con lo cual ese campo no puedo modificarlo por eso e creado otro campo llamado Responsables.
En la tabla Gruposusers el campo da es el link con grupo de incidenciasbkp. Y los datos de Usuario es lo que se insertará en responsables.
E creado algo pero no funciona correctamente ni mucho menos.
Dejo el codigo y explico
Declaro @o con todos los gruposusers posibles y @i con valor 0, asi recorreré de 0 hasta todos los grupos.
El update me lo realiza correctamente, el problema está en que si en INCIDENCIASBKP -> GRUPO tengo 3 usuarios, cuando realiza el UPDATE, solo me realiza el UPDATE del primer registro de gruposusers que coincida con el where, y lo inserta 30 veces....
Espero a verme explicado bien.
Muchas gracias de antemano.
Saludos!
Antes de nada decir que necesito ayuda con un problema que tengo, no pido un codigo, solo ayuda para poder finalizar mi tarea.
Tengo una tabla "INCIDENCIASBKP" donde hay un registro de incidencias, solo necesito trabajar con dos campos "GRUPO / RESPONSABLES".
Después tengo otra tabla "GRUPOSUSERS" y los campos son "DA / USUARIO"
incidenciasbkp gruposusers
-------------------- -------------------
grupo da
responsables usuario
Cuando se crea una incidencia en la tabla "INCIDENCIASBKP" se crean todos los datos, y en grupo, el login del usuario.
Es una aplicación externa, con lo cual ese campo no puedo modificarlo por eso e creado otro campo llamado Responsables.
En la tabla Gruposusers el campo da es el link con grupo de incidenciasbkp. Y los datos de Usuario es lo que se insertará en responsables.
E creado algo pero no funciona correctamente ni mucho menos.
Dejo el codigo y explico
1
2
3
4
5
6
7
8
9
10
11
12
13
DECLARE @o INT = (SELECT COUNT(id) FROM gruposusers)
DECLARE @i INT = 0;
WHILE @i < @o
UPDATE A
SET
A.RESPONSABLES = A.RESPONSABLES + ' ' + B.usuarios
FROM incidenciasBKP A
INNER JOIN gruposusersBKP B ON
A.GRUPO LIKE '%' + B.da+ '%'
where A.GRUPO LIKE '%' + B.da+ '%'
BEGIN;
SET @i=@i+1;
END;
El update me lo realiza correctamente, el problema está en que si en INCIDENCIASBKP -> GRUPO tengo 3 usuarios, cuando realiza el UPDATE, solo me realiza el UPDATE del primer registro de gruposusers que coincida con el where, y lo inserta 30 veces....
Espero a verme explicado bien.
Muchas gracias de antemano.
Saludos!
Valora esta pregunta


0