FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
||||
|
||||
Actualizando un campo...
Hola, amigos.
he tratado de escribir el titulo correcto a esta necesidad y como veran me parece que no es el correcto... pero mas o menos se trata de actualizar un campo bajo cierto criterio. Estoy trabajando con el ibmanager y necesito hacer lo siguiente. Tengo una tabla, digamos de 5 campos asi: campo1 campo2 campo3 campo4 campo5 ------------------------------------------- 001-------ABEL-----1.00------001---X 002-------ABEL-----1.00------001---X 003-------PAMELA--2.00------002---X 004-------ABEL-----1.20------001---X 005-------ABEL-----1.00------001---X 006-------PAMELA--1.30------002---X Y necesito filtrar la tabla que como campo unico sea "campo2" campo1 campo2 campo3 campo4 campo5 ------------------------------------------- 001-------ABEL-----1.00------001---X 003-------PAMELA--2.00------002---X Para luego actualizar el campo "campo5" con un el valor 'y' campo1 campo2 campo3 campo4 campo5 ------------------------------------------- 001-------ABEL-----1.00------001---y 003-------PAMELA--2.00------002---y Se preguntaran para que? , estoy tratando de indentificar registros unicos segun el campo "campo2" campo1 campo2 campo3 campo4 campo5 ------------------------------------------- 001-------ABEL-----1.00------001---y 002-------ABEL-----1.00------001---X 003-------PAMELA--2.00------002---y 004-------ABEL-----1.20------001---X 005-------ABEL-----1.00------001---X 006-------PAMELA--1.30------002---X Agradeciendo sun ayuda, por las ideas que me puedan brindar. Your friend StartKill Lima-Perú Última edición por StartKill fecha: 03-03-2004 a las 01:59:12. Razón: una y en vez de x ;-) |
#2
|
|||
|
|||
Dependiendo de lo que quieras conseguir con un DISTINCT lo puedes lograr sin necesidad del campo5
Código:
select DISTINCT campo2 from tabla |
#3
|
||||
|
||||
Original de nuestro moderador CADETILL
Cita:
Gracias Your friend StartKill Lima-Perú |
#4
|
|||
|
|||
Bueno, yo me refería a que si lo que quieres es, en un listado sacar los diferentes, para no utilizar un where campo5 = 'Y' puedes usar lo que yo te comentaba, pero claro, todo depende de lo que quieras lograr con la información que pones en el campo5
|
#5
|
||||
|
||||
podes hacerlo con un stored procedure, abriendo un cursor for update. la sentencia sql del cursor quedaria algo como:
Código:
Select t1.campo1, t1.campo2 from tabla t1 where t1.campo1 = (select min(t2.campo1) from tabla t2 where t2.campo2 = t1.campo2) Hasta luego.
__________________
Juan Antonio Castillo Hernández (jachguate) Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate Última edición por jachguate fecha: 03-03-2004 a las 20:14:26. |
#6
|
||||
|
||||
Hola,
Se pasaron, es increible el poder de de un select usado correctamente, Gracias señores. Tomando el ejemplo de nuestro amigo "jachguate" Código:
Select t1.campo1, t1.campo2 from tabla t1 where t1.campo1 = (select min(t2.campo1) from tabla t2 where t2.campo2 = t1.campo2) Código:
Select t1.campo1, t1.campo2, t1.campo5 from tabla t1 where t1.campo1 = (select min(t2.campo1) from tabla t2 where t2.campo2 = t1.campo2) Les cuento que mientras no sabia como actualizar el "campo5" tuve que ingeniarmelas para conseguir modificar/actualizar el "campo5". Conseguir actualizar el "campo5" en base a filas unicas por el "campo2" hice una pequeña rutina en delphi que me permitio actualizar el "campo5" mas no obtuve un cursor. , pero sali del apuro procedure TForm1.Button1Click(Sender: TObject); Var __xVar1, xVar2:String; Begin __ibtransaction1.Active:=false; __ibtransaction1.StartTransaction; __ibquery1.open; __ibquery1.First; __xVar1:='__'; __while not ibquery1.Eof do begin ____xVar2:=ibquery1.FieldValues['CAMPO2'] ____If xVar1<>xVar2 then Begin ______xVar1:=ibquery1.FieldValues['CAMPO2'] ______ibquery1.edit; ______ibquery1.FieldByName('CAMPO5').asString:='Y'; ______ibquery1.post; ____end; ____ibquery1.Next; __end; __showmessage('Ok...'); end; Your friend StartKill Lima-Perú Última edición por StartKill fecha: 05-03-2004 a las 20:53:05. Razón: Mal nombre del moderador |
|
|
|