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

Problema con consulta sql

Estas en el tema de Problema con consulta sql en el foro de SQL Server en Foros del Web. Hola a todos. Tengo un problema bastante grande con una consulta SQL y necesito su ayuda. Imaginen que tengo una tabla como esta ID CC ...
  #1 (permalink)  
Antiguo 27/11/2012, 20:14
 
Fecha de Ingreso: abril-2011
Mensajes: 30
Antigüedad: 13 años
Puntos: 0
Problema con consulta sql

Hola a todos.
Tengo un problema bastante grande con una consulta SQL y necesito su ayuda.
Imaginen que tengo una tabla como esta

ID CC | presupuesto | gasto
1
2
3
4
5
6

y otra como esta

padre | hijo
1 | 2
1 | 3
3 | 4
3 | 5
5 | 6

De la segunda Tabla que coloqué hago una consulta obteniendo todos los descendientes por cada uno de los padres. Para la tabla anterior la tabla en cuestión sería esta:

padre | hijo
1 | 2
1 | 3
1 | 4
1 | 5
1 | 6
3 | 4
3 | 5
3 | 6
5 | 6

Hasta aquí estamos bien, el problema es el siguiente. Debo hacer una consulta que para cada padre encuentre la suma de los presupuestos de los ID que tienen como ID padre a ese ID

Para que quede más claro: en el caso del padre con código uno sería la suma de los presupuestos de 1, 2, 3, 4, 5, 6 en el caso del 3 seria la suma de los presupuestos de los ID 3, 4, 5 ,6 y en el caso de 5 sería la suma de los presupuestos de los ID 5,6.

He pasado bastante rato con esta consulta y no he logrado llegar a un código que lo haga en forma correcta y estoy como un poco desesperado.
Cualquier idea es bien recibida.
Muchas gracias y saludos
  #2 (permalink)  
Antiguo 27/11/2012, 22:22
 
Fecha de Ingreso: julio-2012
Ubicación: Israel
Mensajes: 360
Antigüedad: 11 años, 9 meses
Puntos: 40
Respuesta: Problema con consulta sql

No se si el conjunto de todos los descendientes es una tabla o la salida de un CTE recursivo, sin embargo- la consulta debe ser así:
Código SQL:
Ver original
  1. SELECT Padre,
  2.     COUNT(Padre)+1,
  3. FROM MiConjunto
  4. GROUP BY Padre;
Parece mas simple que obtener los descendientes...
__________________
El Castellano no es mi lengua materna: discúlpenme por los errores gramaticales.
Mi blog
  #3 (permalink)  
Antiguo 27/11/2012, 23:02
 
Fecha de Ingreso: abril-2011
Mensajes: 30
Antigüedad: 13 años
Puntos: 0
Respuesta: Problema con consulta sql

Muchas gracias a GEriReshef, al final lo hice de otra manera
Código SQL:
Ver original
  1. SELECT TCR2.CC, TCR2.idCC, SUM(TCR.presupuesto) FROM  @tablaReporte1PC TCR
  2. INNER JOIN @TablaHijos TH ON TH.idHijo = TCR.idCC
  3. INNER JOIN @tablaReporte1PC TCR2 ON TCR2.idCC = TH.idPadre
  4. GROUP BY TCR2.CC, TCR2.idCC
  #4 (permalink)  
Antiguo 28/11/2012, 09:20
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Problema con consulta sql

Eso lo puedes sacar con una funcion recursiva :)
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me

Etiquetas: queary, sql, sqlserver2008
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:20.