Donar $20 Donar $50 Donar $100 Donar mensualmente
 


Enviar respuesta 
 
Calificación:
  • 0 votos - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5
Buscar en el tema
[SQL] Juntar campos repetidos
Autor Mensaje
NathanDrake Sin conexión
Profesor del Modulo A
...
*****

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 399
Agradecimientos dados: 16
Agradecimientos: 79 en 23 posts
Registro en: Apr 2010
Mensaje: #1
[SQL] Juntar campos repetidos Dudas y recomendaciones Gestión de Datos
Buenas gente.

Estoy con el TP de Gestión y resulta que tengo algo que no puedo resolver de una manera no tan fea.

Resulta que tengo una tabla con Recorridos, los Recorridos están compuestos por:
- Codigo Recorrido
- Ciudad Origen
- Ciudad Destino
- Precio Base Por Pasaje
- Precio Base Por KG

Bue... la cuestión que cuando consulto a la tabla maestra me agarro éstos datos, los agrupo, blabla. Ahora el tema es que, por cada Recorrido, tengo 2 registros. Uno con el Precio Base Por Pasaje y otro con el Precio Base Por KG. Por si no se entiende:

Cod - Origen - Destino - PB Pasaje - PB KG
1 - Buenos Aires - Santa Fe - 353.2 - 0
1 - Buenos Aires - Santa Fe - 0 - 34.2

Bueno, la cuestión es que quiero juntar ésto en un sólo registro, para que me quede todo en una tabla bien:

1 - Buenos Aires - Santa Fe - 353.2 - 34.2

Recién estoy aprendiendo con SQL, pero le estoy dando muchas vueltas a ésto y por un lado me tiran crear tablas temporales y hacer merge, otros update, otros select dentro de un select y termino no llegando a nada...

Si me pueden dar una mano se los agradecería. Gracias ;)
06-05-2013 21:20
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
pablog! Sin conexión
Empleado del buffet
Sin estado :(
*

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 1
Agradecimientos dados: 0
Agradecimientos: 0 en 0 posts
Registro en: May 2013
Mensaje: #2
RE: [SQL] Juntar campos repetidos
mmm a ver si no entendi mal el modelo, pero agrupa por codigo de recorrido, origen y destino y hace sum(pb pasaje) y sum(pb kg)...osea te da para esos campos 353.2 + 0 = 353.2 y 0 + 34.2 y listo!

Aca una mini pruebita, algo asi es no? Correlo en el Management y fijate el resultado


create table #temp (
cod int,
orig nvarchar(50),
dest nvarchar(50),
PBP decimal (18,2),
PBKG decimal (18,2)
)

insert into #temp
values (1, 'bsas','sf', 55,0)
insert into #temp
values (1, 'bsas','sf', 0,30.2)

insert into #temp
values (2, 'bsas','co', 22,0)
insert into #temp
values (2, 'bsas','co', 0,89.21)

select * from #temp

select cod, orig, dest, sum(pbp) as PBP, sum(pbkg) as PBKG
from #temp
group by cod, orig, dest

drop table #temp

(Este mensaje fue modificado por última vez en: 06-05-2013 23:10 por pablog!.)
06-05-2013 22:48
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
federicogk Sin conexión
Profesor del Modulo A
HTTP :(
*****

Ing. en Sistemas
Facultad Regional Rosario

Mensajes: 336
Agradecimientos dados: 9
Agradecimientos: 45 en 10 posts
Registro en: Apr 2008
Mensaje: #3
RE: [SQL] Juntar campos repetidos
Si, eso funcionaria. Si lo querés hacer sin usar GROUP BY podes probar esto:


SELECT
k.cod,
k.orig,
k.dest,
p.pbp,
k.pbkg
FROM
#temp k INNER JOIN
(SELECT cod, pbp FROM #temp WHERE pbp > 0) p
ON k.cod = p.cod
WHERE
k.pbkg > 0


Si queres guardar ese resultado en otra tabla, podes crear otra tabla con las mismas caracteristicas de #temp y agregar

INSERT INTO nueva_tabla

arriba del SELECT.

Estimado hijo de puta que no sabe escribir, aprenda que:
"Haber" es un verbo, "A ver" es mirar,"haver" no existe.
"Hay" es haber. "Ahí" es un lugar. "Ay" es una exclamación y "ahy" no existe.
“Haya” es haber. “Halla” es encontrar. “Allá” es un lugar y "haiga" no existe.
"Iba" es de ir. "IVA" es un impuesto e "Hiba" no existe.
"Valla" es una cerca, "Vaya" es ir y " Baya " es un fruto.
07-05-2013 08:55
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
Matias_Ari Sin conexión
Empleado del buffet
-
*

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 21
Agradecimientos dados: 9
Agradecimientos: 16 en 5 posts
Registro en: Oct 2011
Mensaje: #4
RE: [SQL] Juntar campos repetidos
Yo te recomendaria la opcion de pablog! usando el group by.
Hacer un join usando dos veces la misma tabla es un atentado a la performance del query. Por cada registro de la tabla vas a recorrer toda la tabla nuevamente.
Con el group by recorres una sola vez la tabla entera y listo. Podes usar sum() o max() da lo mismo.

Saludos!
07-05-2013 10:51
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
LeaTex Sin conexión
Presidente del CEIT
.
********

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 4.852
Agradecimientos dados: 55
Agradecimientos: 195 en 50 posts
Registro en: Apr 2008
BlogSpot Facebook Google+ Last.fm LinkedIn Twitter
YouTube
Mensaje: #5
RE: [SQL] Juntar campos repetidos
(07-05-2013 10:51)Matias_Ari escribió:  Yo te recomendaria la opcion de pablog! usando el group by.
Hacer un join usando dos veces la misma tabla es un atentado a la performance del query. Por cada registro de la tabla vas a recorrer toda la tabla nuevamente.
Con el group by recorres una sola vez la tabla entera y listo. Podes usar sum() o max() da lo mismo.

Saludos!

sobre todo considerando que la tabla tiene 506060 registros...

07-05-2013 17:31
Visita su sitio web Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
Buscar en el tema
Enviar respuesta 




Usuario(s) navegando en este tema: 1 invitado(s)



    This forum uses Lukasz Tkacz MyBB addons.