Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

Devolver lineas repetidas con distinto valor (Ayuda!)

Estas en el tema de Devolver lineas repetidas con distinto valor (Ayuda!) en el foro de SQL Server en Foros del Web. Hola mi nombre es Sebastián y recurro a sus conocimientos porque tengo un SP que me devuelve una tabla de la sigueinte forma: NumFactura Importe ...
  #1 (permalink)  
Antiguo 30/11/2007, 15:38
 
Fecha de Ingreso: febrero-2006
Mensajes: 8
Antigüedad: 18 años, 10 meses
Puntos: 0
Pregunta Devolver lineas repetidas con distinto valor (Ayuda!)

Hola mi nombre es Sebastián y recurro a sus conocimientos porque tengo un SP que me devuelve una tabla de la sigueinte forma:

NumFactura Importe Linea
0001-0010 50 49229797
0001-0010 50 49229696
0001-0010 50 46126767

Como veran es la misma factura que tiene distintas lineas asociadas, el tema que necesito que la primera venga con el importe (50) pero las siguientes lineas con el mismo número de factura el importe venga en 0

La verdad que estoy estancado y no se me ocurre como hacerlo.

Saludos y gracias.
Seb@
  #2 (permalink)  
Antiguo 30/11/2007, 18:30
Avatar de 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!)

¿Porque en el store no manejas tablas temporales donde guardes el primer registro y los demas con importe en cero, hace una UNION y regresas todos los registros?
  #3 (permalink)  
Antiguo 05/12/2007, 11:39
 
Fecha de Ingreso: febrero-2006
Mensajes: 8
Antigüedad: 18 años, 10 meses
Puntos: 0
Re: Devolver lineas repetidas con distinto valor (Ayuda!)

El tema es justamente ese, como pongo en la tabla temporal el primer registro con el importe y el resto con cero???
  #4 (permalink)  
Antiguo 05/12/2007, 12:52
Avatar de 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)
  #5 (permalink)  
Antiguo 05/12/2007, 13:06
 
Fecha de Ingreso: febrero-2006
Mensajes: 8
Antigüedad: 18 años, 10 meses
Puntos: 0
Re: Devolver lineas repetidas con distinto valor (Ayuda!)

La verdad te agradezco, lo probe así rápido y parece funcionar, ahora me falta probarlo con todos los campos (acá puse solo un ejemplo de demostración) y probarlo en una consulta dinámica pero parece funcionar bien

Saludos y gracias.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:24.