FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
||||
|
||||
Crear una sentencia para update.
Estimados Amigos:
Tengo la siguiente situacion : Una Tabla MySQL, con la siguiente estructura:
Esta tabla forma parte de una base de datos del sistema administrativo de una Mutual, y contiene los codigos de control de las cuentas (internas de la mutual) de cada afiliado, en la mayoria de los casos cada afiliado tiene solo una cuenta o codigo de control, pero ultimamente tambien pueden tener mas de una cuenta o codigo de control, por medio de este codigo se le cobra la cuota societaria, hice referencia a que ultimamente pueden tener mas de un codigo, por lo que tuve que agregar un campo a la tabla ( principal ) para usar solo uno de los codigos para efectuar el cobro y de esta manera no cobrarle de nuevo la cuota al afiliado. Por politica se tomo el primer codigo ingresado, como el que se usa para efectuar el cobro de la cuota, es decir que el campo principal tendria un valor de "1", para ese codigo y "0", para los restantes. Mi problema es como actualizar el campo principal de toda la tabla para reflejar lo antes dicho. considerando que la tabla ya tiene datos ingresados. Por Ejemplo: Como podria actualizar la tabla con una sentencia SQL, considerando que no podria hacerlo uno por uno ya que son aprox. 3000 registros. desde ya muchas gracias.
__________________
Adrián Murúa. |
#3
|
|||
|
|||
Hola: Muy bien no entiendo el problema pero si lo que necesitas es hacerlo solo una vez puedes hacerlo a través de un bucle, por ejemplo un Query (Le pongo Afiliados) que contenga
Esto te evitada mostrara solo el "menor" en id y sin duplicados ya que estas agrupando los afiliados, luego:
Nota: Nuevamente no se si lo haces una sola vez y ya o lo deseas hacer seguido, es decir, que es parte del sistema que lo haga habitualmente. En ese caso deberias probar algo como esto donde el bloque select muestra aquellos que se estan repitiendo pero no lo he probado y lo arme medio de memoria y por aproximacion
(Obviamente mucho no entiendo el problemilla) Saludos |
#4
|
||||
|
||||
Hola a todos , gracias por responder.
con respecto a la respuesta de Young.
El ejemplo que puse , hacia referencia a que un afiliado podia tener dos o mas codigos de control, por lo tanto si tenia dos codigos , el primer codigo ingresado en el sistema ( que corresponderia al valor menor del campo id ) deberia tener "1" en su campo "principal", y el segundo codigo , o los otros, si tiene mas de dos , tendrian un "0" en el campo principal. tu sugerencia seria correcta si solo existiera solamente un afiliado en la empresa y tuviera dos codigos de controles. En la clausula Where afiliadoscontrol_id tendria que ser igual al Min(de todos los ID de los codigos de control del usuario en cuestion). Es decir si el usuario tiene dos codigos , seria el menor de los dos, si tiene 4 seria el menor de los cuatro y asi en mas. Lo pude de esa forma pues eso es lo que no se como expresarlo en SQL. Gracias por tu respuesta. Con respecto a la respuesta de MartinS. Lo necesito hacer solo una vez, pues seria "acomodar" los datos ingresados ( los codigos ) del afiliado antes de haber agregado el campo "principal" a la tabla afiliadoscontrol, voy a probar usar la combinacion Delphi-MySQL, y despues te cuento. Gracias por tu respuesta.
__________________
Adrián Murúa. |
#5
|
||||
|
||||
Que tal esto:
Un saludo
__________________
Al hacer una consulta SQL, haz que los demás te entiendan y disfruten de ella, será tú reflejo de tú saber. |
#6
|
|||
|
|||
Hola Olbeup: Tienes toda la razon. No sabia que se podia agrupar por un campo que no estuviera explicito en el select. Algo nuevo aprendido
Saludos.- |
#7
|
||||
|
||||
Cita:
Saludos. |
#8
|
|||
|
|||
Cita:
Asi lo tiene él: Código:
Id XXX Principal Afiliado_Id 1 0 123 2 0 123 3 0 123 4 0 124 5 0 126 6 0 125 7 0 126 8 0 125 9 0 125 Código:
ID 1 4 5 6 Código:
Id XXX Principal Afiliado_Id 1 1 123 2 0 123 3 0 123 4 1 124 5 1 126 6 1 125 7 0 126 8 0 125 9 0 125 Código:
ID Afiliado_ID 1 123 4 124 5 126 6 125 Saludos |
#9
|
||||
|
||||
Cita:
Con el ejemplo muy bien explicado, espero que lo haya entendido Young, creo que la sentencia SQL que he escrito, no lo has probado. Un saludo. P.D.: Repasa SQL Young
__________________
Al hacer una consulta SQL, haz que los demás te entiendan y disfruten de ella, será tú reflejo de tú saber. Última edición por olbeup fecha: 19-10-2012 a las 08:54:54. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Insertar sentencia SQL despues de Insert,update o delete | vivamotos | Firebird e Interbase | 10 | 02-08-2011 18:24:30 |
Ayuda para crear sentencia SQL | Mauro® | Conexión con bases de datos | 1 | 12-05-2008 20:39:24 |
Sentencia UPDATE | kikecg | SQL | 5 | 16-10-2006 11:23:24 |
Crear un backup por sentencia sql y recuperarlo | Jorge Taveras | SQL | 0 | 10-02-2005 02:15:25 |
Como crear una sentencia SQL (Insert, update y delete) | sitrico | Conexión con bases de datos | 1 | 14-10-2004 00:02:42 |
|