Autor Tema: Tipos de Select  (Leído 76568 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado Nuria

  • Usuario Completo
  • ***
  • Mensajes: 90
    • Ver Perfil
Tipos de Select
« en: 10 de Octubre de 2007, 11:34:33 am »
Aquí os dejo un pueqeño recopilatorio de SELECT.

Es una chorrada pero igual alguno te resulta curioso, seguiré actualizandolo según me vengan en mente mas casos.  :P

*-- Cuando queremos guardar el contenido de una tabla de la BD a una tabla interna:
Código: [Seleccionar]
SELECT * INTO TABLE ti_vbrk FROM vbrk
                           WHERE bukrs IN p_bukrs
                             AND fkdat IN p_fkdat
                             AND kunag IN p_kunag
                             AND vbeln IN p_vbeln.


*-- Para seguir añadiendo registros en una tabla interna sin borrar los que hay
Código: [Seleccionar]
SELECT * APPENDING TABLE ti_bsid FROM bsid
                   WHERE kunnr  = ti_write-kunnr2
                     AND bschl  = '01'
                     AND bldat <= fecha_b-high.



*-- Cuando queremos coger campos sueltos de una tabla de la BD a unas variables:
Código: [Seleccionar]
SELECT SINGLE werks aubel
         INTO (v_werks, v_aubel)
         FROM vbrp
        WHERE vbeln = ti_vbrk-vbeln.


*-- Como recuperar el nombre de usuario
Código: [Seleccionar]
SELECT SINGLE * FROM usr21
               WHERE bname = v_ernam.

SELECT SINGLE name_text
         INTO v_nombre
         FROM adrp
        WHERE persnumber = usr21-persnumber.


*-- Para sacar la cantidad de registros que hay en la selección utilizamos COUNT
Código: [Seleccionar]
SELECT COUNT( * ) INTO v_number1
                  FROM bsid
                 WHERE kunnr = ti_write-kunnr2
                   AND bschl = '01'
                   AND bldat <= fecha_b-high.


*-- Para hacer sumatorios utilizamos SUM
Código: [Seleccionar]
  SELECT SUM( CANTIDADTTE ) SUM( CANTIDADPAGADA ) SUM( IMPORTE )
         SUM( IMPORTE_CIN ) CAMION PLANTA_SAP DIVISION
         INTO (I_DATOS-MCTRAN, I_DATOS-MCPAGA, I_DATOS-IMPTOT,
               I_DATOS-IMPINC, I_DATOS-CAMION, I_DATOS-PLANTA,
               I_DATOS-DIVISI)
         FROM ZALBARANES
         WHERE FECHA   IN S_FECHA
           AND ESTADO  GT '4'
         GROUP BY DIVISION PLANTA_SAP CAMION.
  ENDSELECT.




*-- Cuando queremos decir que nos coja todos lo registros que empiecen por... 006*
Código: [Seleccionar]
SELECT * FROM COSP
        WHERE GJAHR EQ P_EJERCI
          AND OBJNR EQ D_CENTRO_COSTE
          AND ( KSTAR LIKE '006%' OR
                KSTAR LIKE '009%' OR
                KSTAR LIKE '008%' )
          AND WRTTP EQ '04'.


*-- Para evitar hacer un LOOP a una tabla interna.
Código: [Seleccionar]
SELECT * FROM /bic/cubo23 INTO TABLE i_cub
          FOR ALL ENTRIES   IN ti_cuentas
        WHERE fiscyear       = p_gjahr
          AND /bic/co_area   = i_sociedades-co_area
          AND /bic/version   = version
          AND /bic/costelmnt = ti_cuentas-cuenta
          AND /bic/center   IN s_kostl.