Power Builder - Sacar promedio por codigo

 
Vista:
Imágen de perfil de Antonio
Val: 176
Bronce
Ha mantenido su posición en Power Builder (en relación al último mes)
Gráfica de Power Builder

Sacar promedio por codigo

Publicado por Antonio (1271 intervenciones) el 12/02/2016 05:34:51
Un saludo a todos:

Tengo un problema que es el siguiente..

Resulta que en un DataWindow recupero montos de todo el año 2015 y en ese mismo datawindow determino el promedio de todos los montos en un campo comuptado... ejemplo


AVG(monto)

Hasta ahí todo perfecto, pero cuando lo quiero determinar por código resulta que no lo hace.. ejemplo

Select AVG(monto)
into: dPromedio
from facturas
where Year(facturas.fecha) = 2015;

El resultado no es igual, en el datawindow por ejemplo me da como resultado 1,879,000.00, pero por código me bota cantidades similares a 47,879.00

¿Alguien tiene idea porque hace eso o que es lo que me falta realizar ?

Gracias,
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil

Sacar promedio por codigo

Publicado por Alberto (16 intervenciones) el 02/03/2017 20:40:07
Mira cuando creas el datawindow obviamente lo creas seleccionando como tipo de datawindow GROUP

Tu consulta debe ser algo así como:

SELECT
MONTO, YEAR(FECHA) [ANIO]
FROM FACTURAS

Esto es para agrupe(valga la "rebuznancia") en uno o mas campos
para un ejemplo sencillo de lo que necesitas el unico dato que tienes que agrupar es el año

En el asistente de creacion del datawindow te recomiendo que selecciones el tipo de datasurce: External

Agregues los campos: uno de ellos sea el año y el otro el monto

En la siguiente ventana selecciona los campos a agrupar ahí le pones año

Luego cuando te aparezca el datawindow hay una parte donde deben estar los campos que se calculan con la agrupación
para esto sólo debe haber uno para el año (nombrado Anio en el data window)

1: TRailer group Anio (indica una flecha arriba, quiere decir que le debes agregar un campo calculado (compute field), el cual está ubicado en donde agregas los objetos como botones, etiquetas, dropdownlistboxes etc,
Al agregarlo te debe aparecer una ventana y le debes digitar:

avg( Monto for group 1 ) -------|> Calcula el promedio del monto con respecto al group 1 ( campo Anio )

Y luego le das Verify para que te despliegue que no tiene error en el cálculo.

guardar el datawindows en una libreria, lo agregas a un dataobject de una ventana ejecutas la aplicación teniendo en cuenta que vas a ejecutar el SQL anteriormente mencionado y luego deberas ver varios datos de lasiguiente forma:

MONTO PROMEDIO AÑO -----> SON ETIQUETAS DEL DATAWINDOW LO PONES EN EL Header y NO en el Header group Anio
1,233,234.56 2012
34,233,234.23 2013
12,233,234.59 2014
1,233.60 2015 --- > valor del campo denominado ANIO
/\
|
campo calculado

En tu consulta no incluyas esto:

Select AVG(monto)
into: dPromedio
from facturas
where Year(facturas.fecha) = 2015;

porque del promedio te va a hacer otro promedio por eso es que esta mal.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar