Autor Tema: SQL consulta  (Leído 6788 veces)

Desconectado Mithrandir

  • Avanzado
  • ****
  • Mensajes: 1666
SQL consulta
« en: Noviembre 08, 2012, 15:26:41 pm »
Estimados, necesito de vuestra ayuda

tengo una tabla temporal con algunos rut y saldos, necesito hacer un query que los agrupe por rut y el saldo lo valla sumando

rut                       Saldo
1-6                        123
1-7                        125
1-6                        987
1-8                        978
1-6                        456

necesito agruparlo por rut y el saldo sumar el total y mostrarlo en un campo, como lo puedo realizar, no se pueden ocupar cursores
mmmmmmmmmmm, a seguir como mono porfiado

Desconectado Tandersan

  • Experto
  • *****
  • Mensajes: 10032
Re:SQL consulta
« Respuesta #1 en: Noviembre 08, 2012, 15:30:49 pm »
Eso debería ser:

select rut, sum(saldo) as saldo_consolidado
from tabla
group by rut

Luego si creaste un objeto tipo Recordset, digamos A, la información debería ser:
A.rut
A.saldo_consolidado
Structure. Logic. Function. Control.
A structure cannot stand without a foundation.
Logic is the foundation of function.
Function is the essence of control.
I am in control.

Desconectado maurofl

  • Novato
  • *
  • Mensajes: 47
Re:SQL consulta
« Respuesta #2 en: Noviembre 08, 2012, 15:32:28 pm »
Eso eso...  :clap: :clap: :clap:

Desconectado Citation-X

  • Experto
  • *****
  • Mensajes: 2575
  • 996 - 4S (Nadie me advierte)
Re:SQL consulta
« Respuesta #3 en: Noviembre 08, 2012, 15:36:36 pm »
Eso debería ser:

select rut, sum(saldo) as saldo_consolidado
from tabla
group by rut

Luego si creaste un objeto tipo Recordset, digamos A, la información debería ser:
A.rut
A.saldo_consolidado

Así mismo se hace  8)



Al que pestañea lo bannean... paz y amor en navidad  :yaoming:

Desconectado Mithrandir

  • Avanzado
  • ****
  • Mensajes: 1666
Re:SQL consulta
« Respuesta #4 en: Noviembre 08, 2012, 15:37:04 pm »
Eso debería ser:

select rut, sum(saldo) as saldo_consolidado
from tabla
group by rut

Luego si creaste un objeto tipo Recordset, digamos A, la información debería ser:
A.rut
A.saldo_consolidado

Ok, lo otro que me acabo de dar cuenta es que la consulta donde esta el rut esta en la tabla A y el saldo en la tabla B, quedaria algo asi

select rut, sum(B.saldo) as saldo_consolidado
from tabla A
inner join tabla B
on a.rut = B.rut
group by A.rut
mmmmmmmmmmm, a seguir como mono porfiado

Desconectado Tandersan

  • Experto
  • *****
  • Mensajes: 10032
Re:SQL consulta
« Respuesta #5 en: Noviembre 08, 2012, 15:44:22 pm »
Ok, lo otro que me acabo de dar cuenta es que la consulta donde esta el rut esta en la tabla A y el saldo en la tabla B, quedaria algo asi

select rut, sum(B.saldo) as saldo_consolidado
from tabla A
inner join tabla B
on a.rut = B.rut
group by A.rut

Si, solo falta el A. en el select rut.
El resto está bien, sí solo sí buscas referencias que deben estar en ambas tablas.
Structure. Logic. Function. Control.
A structure cannot stand without a foundation.
Logic is the foundation of function.
Function is the essence of control.
I am in control.

Desconectado Mithrandir

  • Avanzado
  • ****
  • Mensajes: 1666
Re:SQL consulta
« Respuesta #6 en: Noviembre 08, 2012, 15:46:29 pm »
Si, solo falta el A. en el select rut.
El resto está bien, sí solo sí buscas referencias que deben estar en ambas tablas.

vale tandersan me salio todo como queria, muchas gracias
mmmmmmmmmmm, a seguir como mono porfiado

Desconectado Citation-X

  • Experto
  • *****
  • Mensajes: 2575
  • 996 - 4S (Nadie me advierte)
Re:SQL consulta
« Respuesta #7 en: Noviembre 08, 2012, 15:56:11 pm »
vale tandersan me salio todo como queria, muchas gracias

Mínimo una "Cross" en el kika Ilmenau  :pozozipy:



Al que pestañea lo bannean... paz y amor en navidad  :yaoming:

Desconectado negroVeloz

  • Experto
  • *****
  • Mensajes: 2900
  • CSM, Biónico, Alemán, Entendido y Facho de cuneta
Re:SQL consulta
« Respuesta #8 en: Noviembre 08, 2012, 15:57:54 pm »
Si después a alguien le falta plata en la cuenta corriente, la culpa es de Tandersan.  :cop2:
 :risa2: :risa2: :risa2:

Desconectado Citation-X

  • Experto
  • *****
  • Mensajes: 2575
  • 996 - 4S (Nadie me advierte)
Re:SQL consulta
« Respuesta #9 en: Noviembre 08, 2012, 16:10:05 pm »
Si después a alguien le falta plata en la cuenta corriente, la culpa es de Tandersan.  :cop2:
 :risa2: :risa2: :risa2:


ahí se podría fusionar este tema con el de los fraudes bancarios  :risa2: :risa2:



Al que pestañea lo bannean... paz y amor en navidad  :yaoming:

Desconectado Tandersan

  • Experto
  • *****
  • Mensajes: 10032
Re:SQL consulta
« Respuesta #10 en: Noviembre 08, 2012, 16:11:09 pm »
Mínimo una "Cross" en el kika Ilmenau  :pozozipy:

 :thumbsup: :thumbsup: :thumbsup: :thumbsup:
Structure. Logic. Function. Control.
A structure cannot stand without a foundation.
Logic is the foundation of function.
Function is the essence of control.
I am in control.

Desconectado negroVeloz

  • Experto
  • *****
  • Mensajes: 2900
  • CSM, Biónico, Alemán, Entendido y Facho de cuneta
Re:SQL consulta
« Respuesta #11 en: Noviembre 08, 2012, 16:11:43 pm »

ahí se podría fusionar este tema con el de los fraudes bancarios  :risa2: :risa2:
:thumbsup:
TSF podrá inventar otra nueva fantástica teoría.

Desconectado Tandersan

  • Experto
  • *****
  • Mensajes: 10032
Re:SQL consulta
« Respuesta #12 en: Noviembre 08, 2012, 16:11:49 pm »
Si después a alguien le falta plata en la cuenta corriente, la culpa es de Tandersan.  :cop2:
 :risa2: :risa2: :risa2:


ahí se podría fusionar este tema con el de los fraudes bancarios  :risa2: :risa2:

 :-[
Structure. Logic. Function. Control.
A structure cannot stand without a foundation.
Logic is the foundation of function.
Function is the essence of control.
I am in control.

Desconectado Mithrandir

  • Avanzado
  • ****
  • Mensajes: 1666
Re:SQL consulta
« Respuesta #13 en: Noviembre 08, 2012, 16:11:58 pm »
tengo otra consulta  xD

mi jefe me pidio usar ROUND en el campo Saldo_Total hay que darle un formato de 18 (00000 y el la sumatoria) y no cacho como usar este comando. alguien me puede echar una mano:( en el spoiler tengo la consulta que realize gracias a ustedes.  )

[spoiler]
SELECT STUFF('000000000',09-DATALENGTH(RTRIM(PAR.PAR_RUT_PARTICIPE))+1, DATALENGTH(RTRIM(PAR.PAR_RUT_PARTICIPE)),RTRIM(PAR.PAR_RUT_PARTICIPE)),
   STUFF('0000',04-DATALENGTH(RTRIM(Age_agente))+1, DATALENGTH(RTRIM(Age_Agente)),RTRIM(Age_Agente)),
   STUFF('000',03-DATALENGTH(RTRIM(Suc_Sucursal))+1, DATALENGTH(RTRIM(Suc_Sucursal)),RTRIM(Suc_Sucursal)),
   sum(CUO.Cuo_Saldo_Cuotas) as Saldo_Total
   from Fmu_Saldo_Cuotas CUO
   inner join  FMU_PARTICIPES PAR
   on PAR.Par_rut_Participe = CUO.Par_rut_Participe
   Group By PAR.Par_rut_Participe, Age_Agente, Suc_Sucursal[/spoiler]
mmmmmmmmmmm, a seguir como mono porfiado

Desconectado negroVeloz

  • Experto
  • *****
  • Mensajes: 2900
  • CSM, Biónico, Alemán, Entendido y Facho de cuneta
Re:SQL consulta
« Respuesta #14 en: Noviembre 08, 2012, 16:19:15 pm »
tengo otra consulta  xD

mi jefe me pidio usar ROUND en el campo Saldo_Total hay que darle un formato de 18 (00000 y el la sumatoria) y no cacho como usar este comando. alguien me puede echar una mano:( en el spoiler tengo la consulta que realize gracias a ustedes.  )

[spoiler]
SELECT STUFF('000000000',09-DATALENGTH(RTRIM(PAR.PAR_RUT_PARTICIPE))+1, DATALENGTH(RTRIM(PAR.PAR_RUT_PARTICIPE)),RTRIM(PAR.PAR_RUT_PARTICIPE)),
   STUFF('0000',04-DATALENGTH(RTRIM(Age_agente))+1, DATALENGTH(RTRIM(Age_Agente)),RTRIM(Age_Agente)),
   STUFF('000',03-DATALENGTH(RTRIM(Suc_Sucursal))+1, DATALENGTH(RTRIM(Suc_Sucursal)),RTRIM(Suc_Sucursal)),
   sum(CUO.Cuo_Saldo_Cuotas) as Saldo_Total
   from Fmu_Saldo_Cuotas CUO
   inner join  FMU_PARTICIPES PAR
   on PAR.Par_rut_Participe = CUO.Par_rut_Participe
   Group By PAR.Par_rut_Participe, Age_Agente, Suc_Sucursal[/spoiler]
ROUND es para aproximar. SELECT ROUND(3.1415, 2) = 3.14

Para nada usaría STUFF ni ROUND para formatear números. Si se trata de formateo, mejor hacerlo través de la aplicación y no en sql, lo cual es más fácil y sobre todo seguro.

Desconectado Tandersan

  • Experto
  • *****
  • Mensajes: 10032
Re:SQL consulta
« Respuesta #15 en: Noviembre 08, 2012, 16:25:37 pm »
¿En qué motor trabajas?
Y NV tiene razón, si es por formatear es mejor hacerlo vía la aplicación usando javascript por ejemplo, y enviar el número "limpio" a la base de datos (o viceversa cuando se rescata de la base y se imprime en pantalla).

Si no tienes opción, entonces sería algo como:

STUFF(
'00000000000000000',
18 - DATALENGTH(RTRIM(ROUND(SUM(SALDOS), 0))) + 1,
DATALENGTH(RTRIM(ROUND(SUM(SALDOS), 0))),
RTRIM(ROUND(SUM(SALDOS), 0))
)

¿No tiene función RIGHT()?
« Última modificación: Noviembre 08, 2012, 16:33:00 pm por Tandersan »
Structure. Logic. Function. Control.
A structure cannot stand without a foundation.
Logic is the foundation of function.
Function is the essence of control.
I am in control.

Desconectado Mithrandir

  • Avanzado
  • ****
  • Mensajes: 1666
Re:SQL consulta
« Respuesta #16 en: Noviembre 08, 2012, 16:34:13 pm »
ROUND es para aproximar. SELECT ROUND(3.1415, 2) = 3.14

Para nada usaría STUFF ni ROUND para formatear números. Si se trata de formateo, mejor hacerlo través de la aplicación y no en sql, lo cual es más fácil y sobre todo seguro.

no hay aplicación, son mallas BATCH que llaman a procedimientos SQL. 

Citar
Publicado por: Tandersan
« : Hoy a las 18:25:37 » Insertar Cita
¿En qué motor trabajas?

sql 2000 y BATCH
mmmmmmmmmmm, a seguir como mono porfiado

Desconectado negroVeloz

  • Experto
  • *****
  • Mensajes: 2900
  • CSM, Biónico, Alemán, Entendido y Facho de cuneta
Re:SQL consulta
« Respuesta #17 en: Noviembre 08, 2012, 16:55:49 pm »
Si estás utilizando procedimientos almacenados, entonces podrías crear una función almacenada que formatee el número, por ejemplo llamada format_num(decimal).
De esta forma cuando realices la consulta sql, te queda más limpio el código:

select ...., format_num(decimal) as Saldo_Total, ... from

Desconectado Comufacho

  • Experto
  • *****
  • Mensajes: 11222
Re:SQL consulta
« Respuesta #18 en: Noviembre 08, 2012, 17:01:52 pm »
Informatico frustrado detected  :risa2:

Si estás utilizando procedimientos almacenados, entonces podrías crear una función almacenada que formatee el número, por ejemplo llamada format_num(decimal).
De esta forma cuando realices la consulta sql, te queda más limpio el código:

select ...., format_num(decimal) as Saldo_Total, ... from

Desconectado negroVeloz

  • Experto
  • *****
  • Mensajes: 2900
  • CSM, Biónico, Alemán, Entendido y Facho de cuneta
Re:SQL consulta
« Respuesta #19 en: Noviembre 08, 2012, 17:07:08 pm »
Informatico frustrado detected  :risa2:
Ingeniero Comercial frustado detected.  :uy:

Tags:
     


    A la memoria de Alex Feliú a.k.a Rommel