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

[SOLUCIONADO] Consualta SQL avanzado

Estas en el tema de Consualta SQL avanzado en el foro de SQL Server en Foros del Web. Hola a todos, si alguien puede ayudarme, quiero hacer una consulta de esta manera: Tengo un 3 tablas en una de las tablas esta el ...
  #1 (permalink)  
Antiguo 19/08/2013, 08:08
 
Fecha de Ingreso: agosto-2013
Mensajes: 14
Antigüedad: 11 años, 4 meses
Puntos: 0
Consualta SQL avanzado

Hola a todos, si alguien puede ayudarme, quiero hacer una consulta de esta manera:
Tengo un 3 tablas
en una de las tablas esta el crédito se usuarios; un usuario tiene varios créditos
En el otro esta el nombre
en el Tercero esta el ahorros

La consulta debe reportar cada usuario con su total (Saldo de créditos), aportes.
Con respecto a los créditos, en una columna debe mostrar un producto(crédito) y en otra columna el segundo producto(crédito) y en la tercera columna el resto de los créditos(productos), al final la suma total(saldo total de crédito).

Lo que no me sale es como crear las columnas donde van ir saldo de cada producto.

Saludos.
  #2 (permalink)  
Antiguo 19/08/2013, 09:05
Avatar de elhombredeblanko  
Fecha de Ingreso: junio-2011
Ubicación: México Lindo y Querido
Mensajes: 212
Antigüedad: 13 años, 5 meses
Puntos: 2
Respuesta: Consualta SQL avanzado

si pusieras la info de tus tablas y que llevas avanzado quisa podamos ayudarte.

salu2
__________________
si siempre hay algo nuevo que aprender
  #3 (permalink)  
Antiguo 19/08/2013, 11:07
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 18 años, 4 meses
Puntos: 774
Respuesta: Consualta SQL avanzado

Asi es amigo, un pequeño ejemplo de tus datos seria de mucha ayuda
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #4 (permalink)  
Antiguo 23/08/2013, 15:35
 
Fecha de Ingreso: agosto-2013
Mensajes: 14
Antigüedad: 11 años, 4 meses
Puntos: 0
Respuesta: Consualta SQL avanzado

Tengo este código, donde en una columna me muestra los nombres como: ORDINARIO, INSTITUCIONAL, ... Y OTROS, pero necesito que el dato C1.N_SALCAP(saldo deuda) que es el saldo deuda me muestre en cada columna por cada producto.
Código SQL:
Ver original
  1. SELECT
  2. C1.C_CODCLI,
  3. C2.C_NOMPER,
  4. C4.C_CODTIT,
  5. C4.N_SALCAP,
  6. C3.C_CODPRO,
  7. C3.C_DESCRI,
  8. C1.N_SALCAP,
  9. (CASE
  10.       WHEN C3.C_CODPRO='165043' OR C3.C_CODPRO='165001' OR C3.C_CODPRO='165052' OR C3.C_CODPRO='165019' THEN 'ORDINARIO'
  11.       WHEN C3.C_CODPRO='165045' OR C3.C_CODPRO='165003'                         THEN 'INSTITUCIONAL'
  12.       WHEN C3.C_CODPRO='165031' THEN 'PROG CREDITICIA'
  13.       WHEN C3.C_CODPRO='165055' THEN 'APOYO FINANCIERO'
  14.       WHEN C3.C_CODPRO='165053' THEN 'SOCIAL'
  15.       WHEN C3.C_CODPRO='165052' THEN 'NUEVO'
  16.       ELSE 'OTROS'
  17.    END)
  18. FROM
  19. CRMCTCR C1, CLMPERS C2, CRTPROD C3, CEMCUEN C4
  20. WHERE
  21. C1.C_CODCLI=C2.C_CODPER AND C2.C_CODPER=C4.C_CODTIT AND C1.C_CODPRO=C3.C_CODPRO AND C1.C_ESTCRE='VG' AND C4.C_CODEST='V'
  22. ORDER BY C2.C_CODPER

Última edición por gnzsoloyo; 23/08/2013 a las 18:33
  #5 (permalink)  
Antiguo 23/08/2013, 15:43
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 18 años, 4 meses
Puntos: 774
Respuesta: Consualta SQL avanzado

y los datos, pon un ejemplo de lo que tienes y de lo que quieres obtener algo como lo que presentan en esta pregunta:

http://www.forosdelweb.com/f87/selec...ablas-1070189/
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #6 (permalink)  
Antiguo 23/08/2013, 16:43
 
Fecha de Ingreso: agosto-2013
Mensajes: 14
Antigüedad: 11 años, 4 meses
Puntos: 0
Respuesta: Consualta SQL avanzado

el codigo me muestra asi:......
[IMG][/IMG]

Última edición por voropeza15; 23/08/2013 a las 16:51
  #7 (permalink)  
Antiguo 26/08/2013, 17:10
 
Fecha de Ingreso: agosto-2013
Mensajes: 14
Antigüedad: 11 años, 4 meses
Puntos: 0
Respuesta: Consualta SQL avanzado

Alguien puede ayudarme con este tema que estuve escribiendo anteriormente.
  #8 (permalink)  
Antiguo 27/08/2013, 07:55
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 18 años, 4 meses
Puntos: 774
Respuesta: Consualta SQL avanzado

Código SQL:
Ver original
  1. CREATE TABLE #temp
  2.  (
  3.  c_codcli VARCHAR(30),
  4.  c_cod_pro INT,
  5.  n_salcap VARCHAR(30)
  6.  )
  7.  
  8. INSERT INTO #temp VALUES ('16500000036',16015,'1000.00')
  9. INSERT INTO #temp VALUES ('16500000036',16055,'4416.69')
  10. INSERT INTO #temp VALUES ('16500000036',16045,'1279.49')
  11. INSERT INTO #temp VALUES ('16500000063',16045,'2566.66')
  12. INSERT INTO #temp VALUES ('16500000063',16045,'4067.88')
  13.  
  14.  
  15. SELECT c_codcli,CASE WHEN c_cod_pro=16015 THEN n_salcap END AS 'Otros',
  16. CASE WHEN c_cod_pro=16055 THEN n_salcap END AS 'apoyo financiero',
  17. CASE WHEN c_cod_pro=16045 THEN n_salcap END AS 'institucional'
  18. FROM #temp

saludos!
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #9 (permalink)  
Antiguo 27/08/2013, 08:39
 
Fecha de Ingreso: agosto-2013
Mensajes: 14
Antigüedad: 11 años, 4 meses
Puntos: 0
Respuesta: Consualta SQL avanzado

Gracias por la respuesta, esta bien el codigo para los 5 registros, pero necesito un codigo para consultar unos 5000 registros
  #10 (permalink)  
Antiguo 27/08/2013, 08:53
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 18 años, 4 meses
Puntos: 774
Respuesta: Consualta SQL avanzado

este...ahi tienes la solucion a tu problema, es solo que cambies la tabla #temp por la tabla de tus datos, que las condiciones las acomodes a tus codigos de condiciones y con eso te sirve tanto para 5 datos como para 500 o para que entiendas:


Código SQL:
Ver original
  1. SELECT
  2. C1.C_CODCLI,
  3. C2.C_NOMPER,
  4. C4.C_CODTIT,
  5. C4.N_SALCAP,
  6. C3.C_CODPRO,
  7. C3.C_DESCRI,
  8. C1.N_SALCAP,
  9. (CASE
  10.       WHEN C3.C_CODPRO='165043' OR C3.C_CODPRO='165001' OR C3.C_CODPRO='165052' OR C3.C_CODPRO='165019' THEN c1.Nsalcap END AS 'ORDINARIO',
  11. CASE      WHEN C3.C_CODPRO='165045' OR C3.C_CODPRO='165003' THEN c1.Nsalcap END AS 'INSTITUCIONAL',
  12. CASE      WHEN C3.C_CODPRO='165031' THEN c1.Nsalcap END AS 'PROG CREDITICIA',
  13. CASE       WHEN C3.C_CODPRO='165055' THEN c1.Nsalcap END AS 'APOYO FINANCIERO',
  14. CASE      WHEN C3.C_CODPRO='165053' THEN c1.Nsalcap END AS 'SOCIAL',
  15. CASE      WHEN C3.C_CODPRO='165052' THEN c1.Nsalcap END AS 'NUEVO',
  16. CASE WHEN c3.c_cpdpro NOT IN (165043,165001,....) THEN c1.Nsalcap END AS  'OTROS'
  17. FROM
  18. CRMCTCR C1, CLMPERS C2, CRTPROD C3, CEMCUEN C4
  19. WHERE
  20. C1.C_CODCLI=C2.C_CODPER AND C2.C_CODPER=C4.C_CODTIT AND C1.C_CODPRO=C3.C_CODPRO AND C1.C_ESTCRE='VG' AND C4.C_CODEST='V'
  21. ORDER BY C2.C_CODPER
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #11 (permalink)  
Antiguo 27/08/2013, 11:26
 
Fecha de Ingreso: agosto-2013
Mensajes: 14
Antigüedad: 11 años, 4 meses
Puntos: 0
Respuesta: Consualta SQL avanzado

Gracias Libras ya me funciona el codigo.

Etiquetas: avanzado, sql, tabla
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 02:45.