Ver Mensaje Individual
  #4 (permalink)  
Antiguo 05/12/2007, 12:52
Avatar de iislas
iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 17 años, 5 meses
Puntos: 180
Re: Devolver lineas repetidas con distinto valor (Ayuda!)

No se si alguien proponga algo mejor, pero trabaje con los datos que nos enviaste, solo cambie el IMPORTE de los registros para distinguir, cual de ellos me estaba agregando.

Cita:
-- Creo mi tabla ORIGEN
CREATE TABLE TablaOrigen (NumFactura char(10), Importe smallmoney, Linea int)
-- Agrego los datos para pruebas
INSERT INTO TablaOrigen VALUES('0001-0010', 50, 49229797)
INSERT INTO TablaOrigen VALUES('0001-0010', 60, 49229696)
INSERT INTO TablaOrigen VALUES('0001-0010', 70, 46126767)
INSERT INTO TablaOrigen VALUES('0002-0010', 80, 49229797)
INSERT INTO TablaOrigen VALUES('0002-0010', 90, 49229696)
INSERT INTO TablaOrigen VALUES('0002-0010', 10, 46126767)
-- Creo mi tabla temporal
create table #temporal_table (NumFactura char(10), Importe smallmoney, Linea int)

-- Inserto y actualizo el primer registro
INSERT INTO #temporal_table (NumFactura)
SELECT distinct NumFactura
FROM TablaOrigen
GROUP BY NumFactura

UPDATE #temporal_table SET Importe = x.Importe, Linea = x.Linea
FROM #temporal_table t1 JOIN (SELECT NumFactura, Importe, Linea FROM TablaOrigen) as x
ON t1.NumFactura = x.NumFactura

-- Genero el Select final
select NumFactura, Importe, Linea from #temporal_table
union
select T1.NumFactura, 0, T1.Linea
FROM TablaOrigen T1 WHERE NOT EXISTS(SELECT NumFactura, Linea FROM #temporal_table WHERE NumFactura = T1.NumFactura and Linea = T1.Linea)