05/12/2007, 12:52
|
| 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) |