Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   Actualizar registros individualmente (https://www.clubdelphi.com/foros/showthread.php?t=76568)

oscarac 10-11-2011 22:09:05

Cita:

Empezado por abelg (Mensaje 418162)
Hola, mira no se si comprendi bien pero con los datos que proporcionaste pude plantear esta solución, cree 2 tablas temporales solo para simular tus tablas y 1 que si la uso para el resultado. (esta en SQL Server) pero creo puede aplicarse la misma lógica en cualquier otro.


Código SQL [-]Create table #cabecera (
nro_tiket varchar(10),
fecha datetime,
cod_trab varchar(6)
)

create table #detalle (
nro_tiket varchar(10),
producto varchar(5),
cantidad int,
subvencion int,
)

create table #result(
orden int identity(1,1),
nro_tiket varchar(10),
cod_trab varchar(6),
fecha datetime,
producto varchar(5),
cantidad int,
subvencion int
)


insert into #cabecera values ('0000000001', '2011-01-11', '000325')
insert into #cabecera values ('0000000002', '2011-01-11', '000245')
insert into #cabecera values ('0000000003', '2011-01-11', '000999')
insert into #cabecera values ('0000000004', '2011-01-11', '000245')
insert into #cabecera values ('0000000005', '2011-01-11', '002144')
insert into #cabecera values ('0000000006', '2011-01-11', '000325')

insert #detalle values('0000000001', '00001', 1, 0)
insert #detalle values('0000000002', '00001', 1, 0)
insert #detalle values('0000000003', '00001', 1, 0)
insert #detalle values('0000000004', '00001', 1, 0)
insert #detalle values('0000000005', '00001', 1, 0)
insert #detalle values('0000000006', '00001', 1, 0)

insert #result
Select c.nro_tiket,
c.cod_trab,
c.fecha,
d.producto,
d.cantidad,
d.subvencion
from #cabecera c
inner join #detalle d on c.nro_tiket = d.nro_tiket


update #result set subvencion = 1

update #result set subvencion = 0
where cod_trab in (Select rt.cod_trab
from #result rt
where #result.orden > rt.orden and
rt.cod_trab = #result.cod_trab and
rt.fecha = #result.fecha)

Select *
from #result

Drop table #cabecera
Drop table #detalle
Drop table #result




Salu2, espero sea lo que buscas.


algo bastante parecido... el problema es que tu has utilizado una tabla nueva #result... y yo necesito hacerlo dentro de la misma tabla detalle

abelg 10-11-2011 22:15:21

Te recomiendo que luego puedas hacer un update a la tabla original.


La franja horaria es GMT +2. Ahora son las 17:48:57.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi