none
¿Como puedo agregar un campo en un informe que me promedie unos resultados y me sume otros? RRS feed

  • Pregunta

  • Estoy haciendo una base de datos para obtener las UF en cada parcela de una finca. Tras varias consultas de selección que me van calculando distintos datos, consigo generar un informe que me presenta los resultados por válvulas de riego. Pero algunas parcelas tienen más de una válvula y no soy capaz de que me promedie las UF de las válvulas que comprenden una parcela ni que me sume los importes de los campos económicos.
    Por ejemplo, la parcela A tiene 2 válvulas: V1 y V2. Los resultados son:
    UF Nitrógeno V1 = 5; Importe abono = 75 €; Importe agua = 3 €
    UF Nitrógeno V2 = 7; Importe abono = 95 €; Importe agua = 3 €
    y lo que necesito es un campo que me refleje el promedio de UF y que sume los importes de abono y agua de V1 y V2, es decir:
    UF Nitrógeno A = 6; Importe abono = 170 €; Importe agua = 6 €
    Mis conocimientos en access son más bien pobres, por lo que agradecería cualquier sugerencia.

    Gracias de antemano.

    Manu (Huelva)
    martes, 16 de octubre de 2012 9:58

Respuestas

  • ¡¡¡Eureka!!!

    Lo he conseguido a través de la opción de Agrupación, Orden y Total. He ordenado por el campo que necesito y he añadido un pie al campo seleccionado. Luego he introducido tantos cuadros de texto como he necesitado y en cada campo he introducido la fórmula que necesitaba. El resultado ha sido que tengo presentado los datos por válvulas y luego promediados o sumados los resultados por parcelas.

    Saludos,

    Manu (Huelva)

    • Marcado como respuesta Manu Márquez miércoles, 14 de noviembre de 2012 9:03
    miércoles, 14 de noviembre de 2012 9:03

Todas las respuestas

  • Hola!

    creo que lo que buscas los puedes conseguir con las funciones agregadas de dominio: DSuma y DProm


    Saludos a todos desde Huelva
    http://www.mvp-access.es/emilio/

    martes, 16 de octubre de 2012 19:31
  • Hola Emilio.

    Antes que nada, agradecerte tu interés.

    Ya me había planteado utilizar esas funciones, pero como he comentado, soy muy novato en esto y no sé utilizarlas bien, a pesar de haberme releido varias veces la ayuda. Cuando trato de insertarla en el Origen del control, no soy capaz de definirla. He llegado a pensar, incluso, que la base no esté diseñada correctamente para hacer lo que quiero. Probablemente he basado todo en las válvulas y ahora no se me ocurre como agruparlas por parcelas.

    Voy a seguir intentándolo a ver que soy capaz de hacer pero quería, al menos, contestarte.

    Manu (Huelva)

    viernes, 19 de octubre de 2012 11:11
  • Hola!

    lo siento pero no tengo ni idea que relación puede haber entre una valvula y una parcela, asi que no puedo ayudarte en cuanto a la estructura de la base de datos.

    En cuanto al uso de las funciones agregadas de dominio, te sugiero que utilices el generador de expresiones y que tengas en cuenta que donde habla de expresión se refiere al campo que quieres buscar, dominio es la tabla o consulta y criterio son las condiciones que quieres que cumpla el registro buscado.

    En la ayuda hay suficiente documentación y ejemplos para guiarte.


    Saludos a todos desde Huelva
    http://www.mvp-access.es/emilio/

    viernes, 19 de octubre de 2012 17:24
  • Hola Emilio.

    Sigo sin saber definir las funciones. Si me permites, te comento un poco. Tengo las tablas de datos “fijos” Empresa, Parcelas, Válvulas y Abonos; y tablas donde guardo los datos de los distintos partes de fertirrigación : Parte de fertirrigación, Parte_Abonos y Parte_Horas.

    Cada tabla tiene su campo autonumérico Id_xxxx que tomo como clave principal para las distintas relaciones. Por ejemplo, la tabla Parcelas la relaciono introduciendo la clave principal Id_Parcela como clave secundaria en la tabla Válvulas. Pero ocurre que las parcelas, en función de la superficie y de la red de riego, pueden tener 1 única válvula o varias (relación uno a varios). Creo que todo esto lo tengo bien. Por ejemplo, la parcela 10 tiene dos válvulas: 02 y 03. Todos los cálculos que realizo mediantes consultas de selección giran en torno a las válvulas (que es realmente la unidad de riego) y consigo los datos que quiero. Pero qué ocurre, que sólo consigo presentar los datos por válvulas y me gustaría agruparlos por parcelas, independientemente de que tenga una válvula o varias, y es aquí donde me choco una y otra vez con un muro.

    La consulta de selección que me arroja estos datos para el posterior informe es la siguiente:

    SELECT [Reparto Unidades].Id_Parte, [Reparto Unidades].Valvula, [Parcelas]![Parcela] & "  " & "(" & [Parcelas]![Variedad] & ")" AS [Parcela/Variedad], Sum(+[Reparto Unidades]!Un1N+[Reparto Unidades]!Un2N+[Reparto Unidades]!Un3N+[Reparto Unidades]!Un4N+[Reparto Unidades]!Un5N) AS [Total N], Sum(+[Reparto Unidades]!Un1P2O5+[Reparto Unidades]!Un2P2O5+[Reparto Unidades]!Un3P2O5+[Reparto Unidades]!Un4P2O5+[Reparto Unidades]!Un5P2O5) AS [Total P2O5], Sum(+[Reparto Unidades]!Un1K2O+[Reparto Unidades]!Un2K2O+[Reparto Unidades]!Un3K2O+[Reparto Unidades]!Un4K2O+[Reparto Unidades]!Un5K2O) AS [Total K2O], Sum(+[Reparto Unidades]!Un1Ca+[Reparto Unidades]!Un2Ca+[Reparto Unidades]!Un3Ca+[Reparto Unidades]!Un4Ca+[Reparto Unidades]!Un5Ca) AS [Total Ca], Sum(+[Reparto Unidades]!Un1MgM+[Reparto Unidades]!Un2MgM+[Reparto Unidades]!Un3MgM+[Reparto Unidades]!Un4MgM+[Reparto Unidades]!Un5MgM) AS [Total MgMa], Sum(+[Reparto Unidades]!Un1MgI+[Reparto Unidades]!Un2MgI+[Reparto Unidades]!Un3MgI+[Reparto Unidades]!Un4MgI+[Reparto Unidades]!Un5MgI) AS [Total MgI], Sum(+[Reparto Unidades]!Un1Fe+[Reparto Unidades]!Un2Fe+[Reparto Unidades]!Un3Fe+[Reparto Unidades]!Un4Fe+[Reparto Unidades]!Un5Fe) AS [Total Fe], Sum(+[Reparto Unidades]!Un1Mn+[Reparto Unidades]!Un2Mn+[Reparto Unidades]!Un3Mn+[Reparto Unidades]!Un4Mn+[Reparto Unidades]!Un5Mn) AS [Total Mn], Sum(+[Reparto Unidades]!Un1Zn+[Reparto Unidades]!Un2Zn+[Reparto Unidades]!Un3Zn+[Reparto Unidades]!Un4Zn+[Reparto Unidades]!Un5Zn) AS [Total Zn], Sum(+[Reparto Unidades]!Un1Cu+[Reparto Unidades]!Un2Cu+[Reparto Unidades]!Un3Cu+[Reparto Unidades]!Un4Cu+[Reparto Unidades]!Un5Cu) AS [Total Cu], Sum(+[Reparto Unidades]!Un1Bo+[Reparto Unidades]!Un2Bo+[Reparto Unidades]!Un3Bo+[Reparto Unidades]!Un4Bo+[Reparto Unidades]!Un5Bo) AS [Total Bo], Sum(+[Reparto Unidades]!Un1Mo+[Reparto Unidades]!Un2Mo+[Reparto Unidades]!Un3Mo+[Reparto Unidades]!Un4Mo+[Reparto Unidades]!Un5Mo) AS [Total Mo], Sum(+[Reparto Unidades]!Un1Co+[Reparto Unidades]!Un2Co+[Reparto Unidades]!Un3Co+[Reparto Unidades]!Un4Co+[Reparto Unidades]!Un5Co) AS [Total Co]

    FROM ([Parte de fertirrigación] INNER JOIN [Reparto Unidades] ON [Parte de fertirrigación].Id_Parte=[Reparto Unidades].Id_Parte) INNER JOIN Parcelas ON [Reparto Unidades].Id_Parcela=Parcelas.Id_Parcela

    GROUP BY [Reparto Unidades].Id_Parte, [Reparto Unidades].Valvula, Parcelas.Parcela, Parcelas.Variedad, [Parcelas]![Parcela] & "  " & "(" & [Parcelas]![Variedad] & ")";

    No sé si esto te aclarará algo más mi problema o no. Espero que sí y que me puedas dar alguna idea.

    Mil gracias de nuevo.

    Saludos,

    Manu (Huelva)


    miércoles, 24 de octubre de 2012 9:52
  • ¡¡¡Eureka!!!

    Lo he conseguido a través de la opción de Agrupación, Orden y Total. He ordenado por el campo que necesito y he añadido un pie al campo seleccionado. Luego he introducido tantos cuadros de texto como he necesitado y en cada campo he introducido la fórmula que necesitaba. El resultado ha sido que tengo presentado los datos por válvulas y luego promediados o sumados los resultados por parcelas.

    Saludos,

    Manu (Huelva)

    • Marcado como respuesta Manu Márquez miércoles, 14 de noviembre de 2012 9:03
    miércoles, 14 de noviembre de 2012 9:03