Unir tablas internas sumando campos iguales

Colapsar
X
 
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • crisgil79
    Junior Member
    • feb
    • 20

    #1

    Unir tablas internas sumando campos iguales

    Hola a todos,

    Necesitaría unir dos tablas internas en una de manera que en los registros que obtendría repetidos, sumase un campo.

    Pongo un ejemplo:

    Tengo dos tablas internas:

    1) it_prev con los siguientes campos:

    | Año | Unidad Prevision | Servicio | Cantidad | Proveedor |
    ----------------------------------------------------------
    | 2007 | 0000000000001 | 300 | 2 | 500 |
    | 2007 | 0000000000001 | 301 | 3 | 500 |
    | 2007 | 0000000000001 | 300 | 1 | 250 |


    En esta tabla para cada proveedor tengo dos servicios diferentes cada uno con su cantidad

    2) it_deleg con los siguientes campos:

    | Distribuidora | Delegacion | Proveedor | Unidad prevision |
    ----------------------------------------------------------
    | CEG | CC1 | 500 | 0000000000001 |

    Para mi ejemplo con un registro tengo suficiente, es el que necesito.

    Bien pues necesito unir it_prev y it_deleg en la tabla interna it_pro_del de manera que los registros que estén repetidos en la it_pro_del se sume su campo Cantidad. Así debería quedar la tabla it_pro_del:

    | Proveedor | Delegación | Total |
    ---------------------------------
    | 500 | CC1 | 5 |
    | 250 | CC1 | 1 |

    Si fuese con un select no habria problema, pero claro al ser tablas internas y tenerlo que hacer con un loop pues me supone tener que recorrer la misma tabla dos veces. ¿Sabeis si hay alguna manera de hacerlo más elegante?

    Muchas gracias.

    Saludos,

    Cris.
  • bisonye
    Senior Member
    • ago
    • 635

    #2
    ¿Con un COLLECT no puedes hacerlo?

    Saludos
    http://sapymas.blogspot.com/

    Comentario

    • crisgil79
      Junior Member
      • feb
      • 20

      #3
      Hola,

      Perfecto!! era justo lo que estaba buscando.

      Muchas gracias bisonye.

      Saludos.

      Comentario

      • crisgil79
        Junior Member
        • feb
        • 20

        #4
        He probado el collect y funciona, pero solo cuando el campo cantidad es diferente a 0. Me interesaría que aunque Cantidad sea 0 también se añada a la nueva tabla interna.

        Hay alguna manera de hacer eso?

        Gracias.

        Saludos.

        Comentario

        • bisonye
          Senior Member
          • ago
          • 635

          #5
          ¿Quieres decir que si el campo es 0 con el collect no te crea una entrada con el valor a 0?

          Pues creo que debería hacerte la entrada, siempre que no exista una entrada ya con lo que lo suma y como es 0 pues eso, 0 más.

          Si es nueva y no lo añade pues controla si el valor es 0 luego controla si la entrada existe y si no existe haces un append.

          Saludos
          http://sapymas.blogspot.com/

          Comentario

          • crisgil79
            Junior Member
            • feb
            • 20

            #6
            Hola bisonye

            si que crea las entradas cuando la cantidad es 0, perdona, mi compañera me habia dicho que no, lo he comprovado y funciona perfectamente.

            Muchas gracias!!!!

            Saludos.

            Comentario

            Trabajando...