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

creo que se puede solucionar con un subquery

Estas en el tema de creo que se puede solucionar con un subquery en el foro de SQL Server en Foros del Web. hola, tengo el siguiente problema tengo el siguiente resultado: codigo | capital | suma_desembolsos AST-3635 | 1.144.513,08 | 54.687,95 AST-3635 | 1.144.513,08 | 61.652,98 AST-3635 ...
  #1 (permalink)  
Antiguo 14/08/2014, 14:06
Avatar de gokufast  
Fecha de Ingreso: abril-2007
Mensajes: 540
Antigüedad: 16 años, 10 meses
Puntos: 3
creo que se puede solucionar con un subquery

hola, tengo el siguiente problema

tengo el siguiente resultado:
codigo | capital | suma_desembolsos
AST-3635 | 1.144.513,08 | 54.687,95
AST-3635 | 1.144.513,08 | 61.652,98
AST-3635 | 1.144.513,08 | 69.010,27
AST-3635 | 1.144.513,08 | 69.357,39
AST-3635 | 1.144.513,08 | 92.019,06
AST-3635 | 1.144.513,08 | 124.978,51


Quiero que me salga asi:

AST-3635 1.144.513,08 471.706,16 (suma de la columna desembolsos)

viene de los querys

Código SQL:
Ver original
  1. SELECT
  2.   c.prestamo_id,
  3.   c.codigo_interno,
  4.   SUM(c.suma_capital) AS capital,
  5.   d.suma_desembolsos
  6. FROM
  7.   v_Suma_Capital c
  8.   INNER JOIN v_Suma_Desembolsos d ON (c.prestamo_id = d.prestamo_id)
  9. WHERE
  10.   c.fecha_vencimiento <= '31/12/2010' AND
  11.   d.fecha_desembolso <= '31/12/2010' AND
  12.   c.codigo_interno = 'AST-3635'
  13. GROUP BY
  14.   c.prestamo_id,
  15.   c.codigo_interno,
  16.   d.suma_desembolsos

VISTA_v_Suma_Capital
Código SQL:
Ver original
  1. SELECT
  2.   prestamo_id,
  3.   codigo_interno,
  4.   fecha_vencimiento,
  5.   SUM(capital) AS suma_capital
  6. FROM
  7.   tblVencimientos_Ejecutados
  8. GROUP BY
  9.     prestamo_id,
  10.     codigo_interno,
  11.     fecha_vencimiento
VISTA v_Suma_Desembolsos
Código SQL:
Ver original
  1. SELECT
  2.   prestamo_id,
  3.   codigo_interno,
  4.   numero,
  5.   fecha_desembolso,
  6.   par_estado,
  7.   SUM(monto_desembolso) AS suma_desembolsos  
  8. FROM
  9.   tblDesembolsos
  10. GROUP BY
  11.     prestamo_id,
  12.     codigo_interno,
  13.     numero,
  14.     fecha_desembolso,
  15.     par_estado

quiero que el resultado salga por query, porque por código se puede pero a menos lineas de código mejor.

saludos

Última edición por gnzsoloyo; 14/08/2014 a las 14:13
  #2 (permalink)  
Antiguo 14/08/2014, 14:12
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, 6 meses
Puntos: 774
Respuesta: creo que se puede solucionar con un subquery

Código SQL:
Ver original
  1. SELECT codigo_interno, capital, SUM(suma_desembolsos) AS suma FROM
  2. (
  3. SELECT
  4. c.prestamo_id,
  5. c.codigo_interno,
  6. SUM(c.suma_capital) AS capital,
  7. d.suma_desembolsos
  8. FROM
  9. v_Suma_Capital c
  10. INNER JOIN v_Suma_Desembolsos d ON (c.prestamo_id = d.prestamo_id)
  11. WHERE
  12. c.fecha_vencimiento <= '31/12/2010' AND
  13. d.fecha_desembolso <= '31/12/2010' AND
  14. c.codigo_interno = 'AST-3635'
  15. GROUP BY
  16. c.prestamo_id,
  17. c.codigo_interno,
  18. d.suma_desembolsos
  19. ) t1 GROUP BY codigo_interno, capital
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #3 (permalink)  
Antiguo 14/08/2014, 14:24
Avatar de gokufast  
Fecha de Ingreso: abril-2007
Mensajes: 540
Antigüedad: 16 años, 10 meses
Puntos: 3
Respuesta: creo que se puede solucionar con un subquery

GRACIAS!!!!
estoy muy oxidado en querys, porque todo lo hago por código.
muchas gracias por la ayuda.
  #4 (permalink)  
Antiguo 14/08/2014, 14:25
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, 6 meses
Puntos: 774
Respuesta: creo que se puede solucionar con un subquery

Cita:
Iniciado por gokufast Ver Mensaje
GRACIAS!!!!
estoy muy oxidado en querys, porque todo lo hago por código.
muchas gracias por la ayuda.
Estos Developers jajajaja es broma ;)
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #5 (permalink)  
Antiguo 14/08/2014, 14:30
Avatar de gokufast  
Fecha de Ingreso: abril-2007
Mensajes: 540
Antigüedad: 16 años, 10 meses
Puntos: 3
Respuesta: creo que se puede solucionar con un subquery

jejeje
si no es mucha molestia, como seria si quiero restar el capital - suma? porque ese es el real dato que quiero :)
  #6 (permalink)  
Antiguo 14/08/2014, 14:41
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, 6 meses
Puntos: 774
Respuesta: creo que se puede solucionar con un subquery

Código SQL:
Ver original
  1. SELECT codigo_interno, (capital - SUM(suma_desembolsos)) AS total FROM
  2. (
  3. SELECT
  4. c.prestamo_id,
  5. c.codigo_interno,
  6. SUM(c.suma_capital) AS capital,
  7. d.suma_desembolsos
  8. FROM
  9. v_Suma_Capital c
  10. INNER JOIN v_Suma_Desembolsos d ON (c.prestamo_id = d.prestamo_id)
  11. WHERE
  12. c.fecha_vencimiento <= '31/12/2010' AND
  13. d.fecha_desembolso <= '31/12/2010' AND
  14. c.codigo_interno = 'AST-3635'
  15. GROUP BY
  16. c.prestamo_id,
  17. c.codigo_interno,
  18. d.suma_desembolsos
  19. ) t1 GROUP BY codigo_interno, capital
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #7 (permalink)  
Antiguo 14/08/2014, 14:42
Avatar de gokufast  
Fecha de Ingreso: abril-2007
Mensajes: 540
Antigüedad: 16 años, 10 meses
Puntos: 3
Respuesta: creo que se puede solucionar con un subquery

gracias ya lo pude hacer

Código SQL:
Ver original
  1. SELECT
  2.     prestamo_id,
  3.     codigo_interno,
  4.     SUM(suma_desembolsos) AS suma_desembolsos,
  5.     suma_capital,
  6.     (SUM(suma_desembolsos) - suma_capital) AS resta    
  7. FROM
  8. (
  9.     SELECT
  10.     c.prestamo_id,
  11.     c.codigo_interno,
  12.     SUM(c.suma_capital) AS suma_capital,
  13.     d.suma_desembolsos
  14.     FROM
  15.     v_Suma_Capital c
  16.     INNER JOIN v_Suma_Desembolsos d ON (c.prestamo_id = d.prestamo_id)
  17.     WHERE
  18.     c.fecha_vencimiento <= '30/06/2014' AND
  19.     d.fecha_desembolso <= '30/06/2014' AND
  20.     c.codigo_interno = 'AST-3635'
  21.     GROUP BY
  22.     c.prestamo_id,
  23.     c.codigo_interno,
  24.     d.suma_desembolsos
  25. ) t1
  26. GROUP BY
  27.     prestamo_id,
  28.     codigo_interno,
  29.     suma_capital

jeje y si a veces te acostumbras tanto a hacer por codigo cuando es mejor y mas facil que el DBMS lo pueda hacer, el resultado recien mostrarlo por codigo.

gracias nuevamente

Etiquetas: query, select, siguiente, solucionar, subquery
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 16:51.