Actualizar sólo 1 fila

25/11/2003 - 20:48 por CAFC | Informe spam
Estimados:
Tengo un problema que me tiene cansadisimo... tengo una
tabla temporal que es generada por un enorrrrrrme conjunto
de select. el tema es que ahora necesito asociar un monto
pero solo a la prmera fila de cada grupo de registros. o
sea tengo lo siguiente:
CLI PROD DESC
Cliente1 Prod1 Descrip1
Cliente1 Prod1 Descrip2
Cliente1 Prod1 Descrip3
Cliente2 Prod1 Descrip1
Cliente2 Prod1 Descrip2
Cliente2 Prod1 Descrip3

a esto le deboa gregar una nueva columna que corresponde a
un monto asociado al cliente, no al producto (para luego
manejarlo en Crystal report), o sea quiero que me devuelva
lo siguiente:

CLI PROD DESC MONTO
Cliente1 Prod1 Descrip1 500
Cliente1 Prod1 Descrip2 0
Cliente1 Prod1 Descrip3 0
Cliente2 Prod1 Descrip1 1300
Cliente2 Prod1 Descrip2 0
Cliente2 Prod1 Descrip3 0

O sea solo necesito un valor por cada grupo de cliente,
ojala me haya explicado bien.
Alguna sugerencia de como hacerlo?

Saludos y gracias.
Cristian.

Preguntas similare

Leer las respuestas

#6 Miguel Egea
26/11/2003 - 09:24 | Informe spam
Es cierto, en cualquier caso si nuestro amigo no tiene una pk podría añadir
un identity en el momento de creación de la tabla temporal y evitaría el
cursor,

Saludos
miguel Egea
"ulises" escribió en el mensaje
news:112201c3b3a8$f1397ca0$
Gracias Miguel por tu acotación, creo que es más acertado
que el mío en que asumí en que las descripciones pueden
ser iguales en cuyo caso la única forma de procesar es a
través de un cursor, y a eso apunta mi consulta: por
ejemplo si tengo una tabla de usuarios y tengo que usar
sp_adduser por cada uno de ellos no he encontrado una
forma diferente de hacerlo que usando un cursor pero esto
sigue cayendo dentro de la categoría de proceso "uno por
uno", ¿existe otro uso "justificado" de cursores en
procesos diferentes al proceso row-by-row?

Saludos desde Lima,
Ulises

Me he permitido modificar un poquito el script. Creo que


satisface un poco
más tus requerimientos y no usa cursores.

DROP TABLE TABLA
GO
create table tabla ( clave char(1),descr char(10),


cantidad int )
go
insert into tabla values ( 'A','desc 1',0 )
insert into tabla values ( 'A','desc 2',0 )
insert into tabla values ( 'A','desc 3',0 )
insert into tabla values ( 'A','desc 4',0 )
insert into tabla values ( 'B','desc 1',0 )
insert into tabla values ( 'B','desc 2',0 )
insert into tabla values ( 'B','desc 3',0 )
insert into tabla values ( 'B','desc 4',0 )
insert into tabla values ( 'C','desc 1',0 )
insert into tabla values ( 'C','desc 2',0 )
insert into tabla values ( 'C','desc 3',0 )
insert into tabla values ( 'C','desc 4',0 )
go
go
update tabla set cantidad=t2.monto from tabla inner join (
select clave,MIN(descr) descr,5500 as monto from tabla


group by clave) t2
on tabla.clave=t2.clave and tabla.descr=t2.descr
go
select * from tabla

email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida