Ver Mensaje Individual
  #8 (permalink)  
Antiguo 28/07/2006, 15:26
Avatar de Mithrandir
Mithrandir
Colaborador
 
Fecha de Ingreso: abril-2003
Mensajes: 12.106
Antigüedad: 21 años
Puntos: 25
Juas, ya me la cambiaste de nuevo. Elegir el primer registro no es lo que veníamos manejando ("primero" puede ser diferente de "más pequeño").

Ten en cuenta que en SQL Server no existe el concepto de "primera ocurrencia" pues siempre necesitas un parámetro sobre el cual ordenar y obtener ese primero, puede ser un ID, una fecha, orden afabético, etc. pero siempre tienes que tener ese "algo".

Revisando parece que tu llave primaria real (de la tabla) es campo1, pues empezando porque está en primer lugar y luego en que no se repite en estos ejemplos. Si eso es cierto esto hace el trabajo:
Código:
CREATE TABLE #tabla (campo1 nchar(1), campo2 int, campo3 int, campo4 int)

INSERT INTO #tabla VALUES ('A', 1, 12345678 , 3)
INSERT INTO #tabla VALUES ('B', 1, 12345678 , 1)
INSERT INTO #tabla VALUES ('C', 2, 12345678 , 5)
INSERT INTO #tabla VALUES ('D', 3, 98765432 , 8)
INSERT INTO #tabla VALUES ('E', 4, 98765432 , 1)
INSERT INTO #tabla VALUES ('F', 5, 98765432 , 5)

select t1.campo1, t1.campo2, t1.campo3, t2.campo4
FROM #tabla t1
	INNER JOIN (SELECT min(campo1) AS campo1, campo3, sum(campo4) as campo4 FROM #tabla GROUP BY campo3) t2
		ON t1.campo1 = t2.campo1

DROP TABLE #tabla
__________________
"El hombre, en su orgullo, creó a Dios a su imagen y semejanza."
Friedrich Nietzsche