Conduce Chile
General => De Todo Un Poco => Mensaje iniciado por: Mithrandir 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
-
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
-
Eso eso... :clap: :clap: :clap:
-
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)
-
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
-
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.
-
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
-
vale tandersan me salio todo como queria, muchas gracias
Mínimo una "Cross" en el kika Ilmenau :pozozipy:
-
Si después a alguien le falta plata en la cuenta corriente, la culpa es de Tandersan. :cop2:
:risa2: :risa2: :risa2:
-
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:
-
Mínimo una "Cross" en el kika Ilmenau :pozozipy:
:thumbsup: :thumbsup: :thumbsup: :thumbsup:
-
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.
-
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:
:-[
-
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]
-
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.
-
¿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()?
-
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.
Publicado por: Tandersan
« : Hoy a las 18:25:37 » Insertar Cita
¿En qué motor trabajas?
sql 2000 y BATCH
-
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
-
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
-
Informatico frustrado detected :risa2:
Ingeniero Comercial frustado detected. :uy:
-
Ingeniero Comercial frustado detected. :uy:
Me sobró puntaje :risa2: En todo caso no fue en mala... queria copuchar porque no estudiaste informática... si tienes tanta facilidad.
-
Me sobró puntaje :risa2: En todo caso no fue en mala... queria copuchar porque no estudiaste informática... si tienes tanta facilidad.
Jajaja.
En realidad me gusta programar, pero ser informático es más que saber programar como en 20 lenguajes.
Enviado desde mi GT-S5830L usando Tapatalk 2
-
Me sobró puntaje :risa2: En todo caso no fue en mala... queria copuchar porque no estudiaste informática... si tienes tanta facilidad.
Para el chateo loco. >:D
-
Una vez que la inquietud se resuelve, el tema queda abierto para chatear :nanay:
Para el chateo loco. >:D
-
Una vez que la inquietud se resuelve, el tema queda abierto para chatear :nanay:
Para los que aportamos, 100% de acuerdo. :thumbsup:
-
una consulta, estoy compilando el procedimiento y me arroja este error: Server: Msg 213, Level 16, State 4, Procedure SVC_RPE_GNR_ITF_SEG_CLI, Line 29
Insert Error: Column name or number of supplied values does not match table definition., en la tabla tengo 4 campos e inserto 4 campos, no cacho donde esta el problema.
[spoiler]CREATE TABLE TEMPDB.GUEST.TSFM_SEG_CLI (
RUT VARCHAR(10),
Age_Agente varchar(4),
Suc_sucursal varchar(3),
Saldo_total Varchar(18))
INSERT INTO TEMPDB.GUEST.TSFM_SEG_CLI
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)) + ';' +
CONVERT(CHAR(19),STUFF('00000000000000000',18-DATALENGTH(RTRIM(ROUND(sum(CUO.Cuo_Saldo_Cuotas), 0)))+1,DATALENGTH(RTRIM(ROUND(SUM(CUO.Cuo_Saldo_Cuotas), 0))),RTRIM(ROUND(SUM(CUO.Cuo_Saldo_Cuotas), 0))))
from Fmu_Saldo_Cuotas CUO
inner join FMU_PARTICIPES PAR
on PAR.Par_rut_Participe = CUO.Par_rut_Participe
where cuo_fecha = '20100331'
Group By PAR.Par_rut_Participe, Age_Agente, Suc_Sucursal[/spoiler]
-
una consulta, estoy compilando el procedimiento y me arroja este error: Server: Msg 213, Level 16, State 4, Procedure SVC_RPE_GNR_ITF_SEG_CLI, Line 29
Insert Error: Column name or number of supplied values does not match table definition., en la tabla tengo 4 campos e inserto 4 campos, no cacho donde esta el problema.
[spoiler]CREATE TABLE TEMPDB.GUEST.TSFM_SEG_CLI (
RUT VARCHAR(10),
Age_Agente varchar(4),
Suc_sucursal varchar(3),
Saldo_total Varchar(18))
INSERT INTO TEMPDB.GUEST.TSFM_SEG_CLI
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)) + ';' +
CONVERT(CHAR(19),STUFF('00000000000000000',18-DATALENGTH(RTRIM(ROUND(sum(CUO.Cuo_Saldo_Cuotas), 0)))+1,DATALENGTH(RTRIM(ROUND(SUM(CUO.Cuo_Saldo_Cuotas), 0))),RTRIM(ROUND(SUM(CUO.Cuo_Saldo_Cuotas), 0))))
from Fmu_Saldo_Cuotas CUO
inner join FMU_PARTICIPES PAR
on PAR.Par_rut_Participe = CUO.Par_rut_Participe
where cuo_fecha = '20100331'
Group By PAR.Par_rut_Participe, Age_Agente, Suc_Sucursal[/spoiler]
¿No tienes una interfaz donde puedas ejecutar la consulta SQL?
No tengo práctica con SQL Server, así que puedo estar totalmente perdido. Dicho eso, vería dos cosas:
- ¿Permite la separación de campos por punto y coma (;)? Prueba usando coma (,)
- Si eso no era, ejecuta la consulta en una interfaz, y ve si efectivamente los largos que retorna, son los largos definidos en la tabla que creaste.
-
¿No tienes una interfaz donde puedas ejecutar la consulta SQL?
No tengo práctica con SQL Server, así que puedo estar totalmente perdido. Dicho eso, vería dos cosas:
- ¿Permite la separación de campos por punto y coma (;)? Prueba usando coma (,)
- Si eso no era, ejecuta la consulta en una interfaz, y ve si efectivamente los largos que retorna, son los largos definidos en la tabla que creaste.
separe por comas, y dice lo mismo, los largos de la tabla estan bien, por eso no entiendo por que se cae la consulta
-
una consulta, estoy compilando el procedimiento y me arroja este error: Server: Msg 213, Level 16, State 4, Procedure SVC_RPE_GNR_ITF_SEG_CLI, Line 29
Insert Error: Column name or number of supplied values does not match table definition., en la tabla tengo 4 campos e inserto 4 campos, no cacho donde esta el problema.
[spoiler]CREATE TABLE TEMPDB.GUEST.TSFM_SEG_CLI (
RUT VARCHAR(10),
Age_Agente varchar(4),
Suc_sucursal varchar(3),
Saldo_total Varchar(18))
INSERT INTO TEMPDB.GUEST.TSFM_SEG_CLI
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)) + ';' +
CONVERT(CHAR(19),STUFF('00000000000000000',18-DATALENGTH(RTRIM(ROUND(sum(CUO.Cuo_Saldo_Cuotas), 0)))+1,DATALENGTH(RTRIM(ROUND(SUM(CUO.Cuo_Saldo_Cuotas), 0))),RTRIM(ROUND(SUM(CUO.Cuo_Saldo_Cuotas), 0))))
from Fmu_Saldo_Cuotas CUO
inner join FMU_PARTICIPES PAR
on PAR.Par_rut_Participe = CUO.Par_rut_Participe
where cuo_fecha = '20100331'
Group By PAR.Par_rut_Participe, Age_Agente, Suc_Sucursal[/spoiler]
Está medio complicada la consulta SQL, y la miré a la rápida, pero parece la consulta select está concatenada y finalmente sólo estás arrojando 1 columna. Creo que el error está en + ';' +, todo eso debería ser coma.
-
Está medio complicada la consulta SQL, y la miré a la rápida, pero parece la consulta select está concatenada y finalmente sólo estás arrojando 1 columna. Creo que el error está en + ';' +, todo eso debería ser coma.
modifique el procedimiento de (;) a (,) igual aparece el mismo error, y entonces como lo concatenaria?????
-
Está medio complicada la consulta SQL, y la miré a la rápida, pero parece la consulta select está concatenada y finalmente sólo estás arrojando 1 columna. Creo que el error está en + ';' +, todo eso debería ser coma.
Ah veldá, es una consulta absoluta, no tiene variables pasadas por el procedimiento así que no debería tener esos +, porque estaría concatenando todo en una columna.
-
modifique el procedimiento de (;) a (,) igual aparece el mismo error, y entonces como lo concatenaria?????
Está bien concatenada. Pero el problema es que no debes concatenar 4 columnas en 1 sola, si los resultados los vas a copiar en una tabla con 4 columnas. De hecho, eso es lo que te está diciendo el error: "number of supplied values does not match table definition".
-
o sea seria asi:
+ ( ; ) + , + ( ; ) +, y etc etc etc
-
o sea seria asi:
+ ( ; ) + , + ( ; ) +, y etc etc etc
Es que a mi me queda la duda de por qué es
select a + ; + b (concatenando)
y no
selecy a, b (sin concatenar)
-
Es que a mi me queda la duda de por qué es
select a + ; + b (concatenando)
y no
selecy a, b (sin concatenar)
Yo tengo la misma duda, por qué quieres concatenar??. Si vas a meter en una tabla temporal los resultados, simplemente debes consultar 4 columnas para meterlas en 4 columnas.
Si después vas a hacer una consulta sobre la tabla temporal, ahí podrías concatenar y todo lo que quieras.
-
este procedimiento va a bajar un archivo plano para llenar una Interfaz que se manda a producción para devolver otro archivo plano para actualizar unas tablas y estas procesarlas con info actualizada,
la concatenación era asi +( ; ), +( ; ), etc etc etc
-
Es decir, a cada columna le quieres agregar el caracter ";" al final????
-
Es decir, a cada columna le quieres agregar el caracter ";" al final????
sip para que el BCP cuando descargue la tabla se le indique que ; es el final de un campo
-
Entonces la concatenación debería ser así:
select a + ";", b + ";", c + ";", d + ";" from........
-
Entonces la concatenación debería ser así:
select a + ";", b + ";", c + ";", d + ";" from........
exacto asi esta hecho
-
este procedimiento va a bajar un archivo plano para llenar una Interfaz que se manda a producción para devolver otro archivo plano para actualizar unas tablas y estas procesarlas con info actualizada,
la concatenación era asi +( ; ), +( ; ), etc etc etc
Estimado, si desea agregar un punto y coma al final de cada línea, claro que es:
TEXTO + ;
Si es más de un campo en una consulta SELECT, es:
TEXTO + ; ,
TEXTO + ;
Si colocas
TEXTO + ; + TEXTO + ;
concatenas todo en una sola línea, lo que no es viable por cuanto tu tabla de destino tiene más de una columna. Las inserciones siempre son:
INSERT INTO TABLA_DESTINO (VALOR1, VALOR)
SELECT CAMPO1, CAMPO2 FROM TABLA_ORIGEN
Esto genera error:
INSERT INTO TABLA_DESTINO (VALOR1, VALOR)
SELECT CAMPO1 + CAMPO2 FROM TABLA_ORIGEN
Ahora, si tienes un texto de 4 caracteres, y lo insertas en un campo de largo 4, todo bien.
Si el texto tiene 4 caracteres y le concatenas un punto y coma, entonces el largo del campo debe ser cinco
CREATE TABLE1 ( CAMPO1 VARCHAR(4) )
-> SE PUEDE INSERTAR 'HOLA', 'CHAO'
Si quieres insertar 'HOLA+', 'CHAO+', entonces tabla debe ser
CREATE TABLE1 ( CAMPO1 VARCHAR(5) )
-
Entonces, debería ser mas o menos como te indico en el spoiler, pero no se si contendrá otros errores, ya que no tengo las tablas como para probar.
[spoiler]INSERT INTO TEMPDB.GUEST.TSFM_SEG_CLI
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)) + ';',
CONVERT(CHAR(19),STUFF('00000000000000000',18-DATALENGTH(RTRIM(ROUND(sum(CUO.Cuo_Saldo_Cuotas), 0)))+1,DATALENGTH(RTRIM(ROUND(SUM(CUO.Cuo_Saldo_Cuotas), 0))),RTRIM(ROUND(SUM(CUO.Cuo_Saldo_Cuotas), 0))))
from Fmu_Saldo_Cuotas CUO
inner join FMU_PARTICIPES PAR
on PAR.Par_rut_Participe = CUO.Par_rut_Participe
where cuo_fecha = '20100331'
Group By PAR.Par_rut_Participe, Age_Agente, Suc_Sucursal[/spoiler]
-
Otra cosa, entiendo que estás formateando un número 123 para que quede como 0000123, de acuerdo a cierta cantidad de posiciones definidas como iniciales. Por ejemplo en el RUT definiste 18 posiciones, por ende:
1234567 se transforma en 000000000001234567
Creo recordar (solo creo) que SQL Server tiene la función RIGHT.
Si es así, puedes usarla como algo parecido a RIGHT('0000000000000000000000000000' + CAMPO, 18). Es más sencillo que STUFF en términos de codificación, si el resultado deseado es solo completar con ceros hacia la izquierda.
-
Otra cosa, entiendo que estás formateando un número 123 para que quede como 0000123, de acuerdo a cierta cantidad de posiciones definidas como iniciales. Por ejemplo en el RUT definiste 18 posiciones, por ende:
1234567 se transforma en 000000000001234567
Creo recordar (solo creo) que SQL Server tiene la función RIGHT.
Si es así, puedes usarla como algo parecido a RIGHT('0000000000000000000000000000' + CAMPO, 18). Es más sencillo que STUFF en términos de codificación, si el resultado deseado es solo completar con ceros hacia la izquierda.
si correcto pero en el banco las funciones left o right esta un poco limitada en el banco
-
Y pudiste resolverlo?
-
Y pudiste resolverlo?
si señor, el procedimiento ya esta compilado y en produccion muchas gracias sres., ahora el hilo se transformara en chat. xD
-
si señor, el procedimiento ya esta compilado y en produccion muchas gracias sres., ahora el hilo se transformara en chat. xD
A que buena. Y cómo era?
:thumbsup:
-
A que buena. Y cómo era?
:thumbsup:
Como decía yo pues, ¿te queda alguna duda? :risa2: :risa2: :risa2: :risa2:
¡¡¡Empezó el chateo!!! :zipynana:
-
Le debes una UF a Tandersan, eso en pos de respetar el derecho de propiedad intelectual. :diablo:
-
aca esta la solución, a futuro hay que cambiar la fecha pero eso queda para el release 2
[spoiler]IF EXISTS ( SELECT 1 FROM TEMPDB..SYSOBJECTS
WHERE ID = OBJECT_ID(N'[TEMPDB].[GUEST].[TSFM_SEG_CLI]')
AND TYPE = 'U')
BEGIN
DROP TABLE [TEMPDB].[GUEST].[TSFM_SEG_CLI]
END
select * from TEMPDB.GUEST.TSFM_SEG_CLI
CREATE TABLE TEMPDB.GUEST.TSFM_SEG_CLI (
RUT VARCHAR(10),
Age_Agente varchar(4),
Suc_sucursal varchar(3),
Saldo_total Varchar(18))
INSERT INTO TEMPDB.GUEST.TSFM_SEG_CLI
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))+ ';',
CONVERT(CHAR(19),STUFF('00000000000000000',18-DATALENGTH(RTRIM(ROUND(sum(CUO.Cuo_Saldo_Cuotas), 0)))+1,DATALENGTH(RTRIM(ROUND(SUM(CUO.Cuo_Saldo_Cuotas), 0))),RTRIM(ROUND(SUM(CUO.Cuo_Saldo_Cuotas), 0))))
from Fmu_Saldo_Cuotas CUO
inner join FMU_PARTICIPES PAR
on PAR.Par_rut_Participe = CUO.Par_rut_Participe
where cuo_fecha = '20100331'
Group By PAR.Par_rut_Participe, Age_Agente, Suc_Sucursal
[/spoiler]