Forum Discussion

Anonymous's avatar
Anonymous
Not applicable
6 years ago

Dynamic Where Statement for ODBC Connection

Situación: Estoy usando una consulta SQL a través de una conexión ODBC para obtener información de la cuenta de nivel de transacción en un banco bastante grande, por lo que 1 mes de datos es decenas de millones de filas para todas las cuentas en este banco y no puedo ejecutarlo ya que obtengo un error "No más espacio de cola de impresión".

Sólo necesito información de transacciones para un subconjunto de aproximadamente 7 cuentas y tengo la lista de todos esos números de cuenta. Soy capaz de codificar de forma rígida estos números de cuenta en la cláusula where y eso funciona, sin embargo, la lista de cuentas seguirá creciendo por lo que en el futuro tendré que agregar manualmente los números de cuenta. Mi plan inicial era usar un documento de Excel en una unidad compartida donde el personal de operaciones puede agregar las nuevas cuentas y unirse a ese documento de Excel a la tabla de transacciones para filtrar los resultados a solo esas cuentas automáticamente. Sin embargo, esto no funciona, ya que inicialmente necesito cargar todas las cuentas antes de hacer esa combinación. Desafortunadamente no hay ningún campo dentro del objeto del que estoy tirando que identifique las cuentas que necesito. Solo sé qué cuentas seleccionar con información del gerente de producto.

¿Hay alguna manera en la que hago referencia a la lista de números de cuenta en la cláusula where de la lista de Excel que tengo, o es la única opción para codificarlos de forma rígida de vez en cuando?

2 Replies

  • mostrar el código M para la parte ODBC. Esto debería ser posible con los parámetros de consulta, potencialmente a costa de perder el plegado de consultas.

    • Anonymous's avatar
      Anonymous
      Not applicable

      Así que codiqué los números de cuenta, pero también me uní a la tabla con los números de cuenta en caso de que ayude a

      let Source á Odbc.Query("dsn-Teradata-Prod", "SELECT-(lf) DEPOSITREP. F_CHKG_TRAN_HIST_EOM. ACCT_NBR, (lf) DEPOSITREP. F_CHKG_TRAN_HIST_EOM. DPST2_APPL, (lf) DEPOSITREP. F_CHKG_TRAN_HIST_EOM. SEQ_NBR, (lf) DEPOSITREP. F_CHKG_TRAN_HIST_EOM. DATAYM_NBR, (lf) DEPOSITREP. F_CHKG_TRAN_HIST_EOM. ACCT_ID, (lf) DEPOSITREP. F_CHKG_TRAN_HIST_EOM. BANK_NBR, (lf) DEPOSITREP. F_CHKG_TRAN_HIST_EOM. DPST2_INST, (lf) DEPOSITREP. F_CHKG_TRAN_HIST_EOM. DPST2_UPD_DATE, (lf) DEPOSITREP. F_CHKG_TRAN_HIST_EOM. DPST2_UPD_TIME, (lf) DEPOSITREP. F_CHKG_TRAN_HIST_EOM. DPST2_UPD_USER, (lf) DEPOSITREP. F_CHKG_TRAN_HIST_EOM. DPST2_UPD_ORG,(lf) DEPOSITREP. F_CHKG_TRAN_HIST_EOM. DPST2_TRIND, (lf) DEPOSITREP. F_CHKG_TRAN_HIST_EOM. DPST2_TRTOD, (lf) DEPOSITREP. F_CHKG_TRAN_HIST_EOM. DPST2_TRITEMS,(lf) DEPOSITREP. F_CHKG_TRAN_HIST_EOM. DPST2_DIND, (lf) DEPOSITREP. F_CHKG_TRAN_HIST_EOM. DPST2_TRSOURCE, (lf) DEPOSITREP. F_DPS_DEPOSIT_HIST_EOM. DPDDM_MTYPE,-(lf) count(DEPOSITREP. F_DPS_DEPOSIT_HIST_EOM. DPDDM_ACCOUNT)/(lf) DEPOSITREP. F_DPS_DEPOSIT_HIST_EOM. DPDDM_MSTATUS, (lf) DEPOSITREP. F_DPS_DEPOSIT_HIST_EOM. DPDDM_MDORM, (lf) DEPOSITREP. F_DPS_DEPOSIT_HIST_EOM. DPDDM_MANALYSIS, (lf) Cast(DEPOSITREP. F_DPS_DEPOSIT_HIST_EOM. CTR_ID como entero), REFERENCE_BU (lf). STND_CORP_HRCHY_CRNT_CDM.CST_CNTR_NM,(lf) REFERENCE_BU. STND_CORP_HRCHY_CRNT_CDM.MKT_NM,(lf) REFERENCE_BU. STND_CORP_HRCHY_CRNT_CDM. SPU_NM, (lf) DEPOSITREP. F_CHKG_TRAN_HIST_EOM. DPST2_ACCOUNT, (lf) DEPOSITREP. F_CHKG_TRAN_HIST_EOM. DPST2_TDDESC_1, (lf) DEPOSITREP. F_CHKG_TRAN_HIST_EOM. DPST2_TDDESC_2,(lf) DEPOSITREP. F_CHKG_TRAN_HIST_EOM. DPST2_SEQUENCE, (lf) DEPOSITREP. F_CHKG_TRAN_HIST_EOM. DPST2_TRAMT, (lf) DEPOSITREP. F_CHKG_TRAN_HIST_EOM. DPST2_TRSEQ, (lf) DEPOSITREP. F_CHKG_TRAN_HIST_EOM. DPST2_TREXTC, (lf) DEPOSITREP. F_CHKG_TRAN_HIST_EOM. DPST2_TRPROCDT, (lf) DEPOSITREP. F_CHKG_TRAN_HIST_EOM. DPST2_TREFFDT, (lf) DEPOSITREP. F_CHKG_TRAN_HIST_EOM. TRANS_TYPE_ID, (lf) DEPOSITREP. F_CHKG_TRAN_HIST_EOM. DPST2_TRINIT,(lf) DEPOSITREP. F_CHKG_TRAN_HIST_EOM. DPST2_TRITC, (lf) DEPOSITREP. F_CHKG_TRAN_HIST_EOM. ORIGIN_CD, (lf) DEPOSITREP. F_CHKG_TRAN_HIST_EOM. DPST2_DATE, (lf) DEPOSITREP. F_CHKG_TRAN_HIST_EOM. DATA_DT, (lf) DEPOSITREP. F_CHKG_TRAN_HIST_EOM. DPST2_TRSERIAL(lf)FROM-(lf) REFERENCE_BU. STND_CORP_HRCHY_CRNT_CDM DEPOSITREP DE UNIÓN EXTERIOR DERECHO. F_DPS_DEPOSIT_HIST_EOM ON (REFERENCE_BU. STND_CORP_HRCHY_CRNT_CDM. CST_CNTR_CD-SUbstr(DEPOSITREP. F_DPS_DEPOSIT_HIST_EOM. CTR_ID,2,4))-(lf) INNER JOIN DEPOSITREP. F_CHKG_TRAN_HIST_EOM ON (DEPOSITREP. F_CHKG_TRAN_HIST_EOM. ACCT_NBR-DEPOSITREP. F_DPS_DEPOSIT_HIST_EOM. ACCT_NBR) (LF) (lf)WHERE (LF) ('(lf) DEPOSITREP. F_CHKG_TRAN_HIST_EOM. DATAYM_NBR > 202004o(lf) Y-(lf) DEPOSITREP. F_DPS_DEPOSIT_HIST_EOM. DPDDM_MTYPE IN ( 2, 3, 120, 123, 124, 127, 128, 130, 150, 160, 164, 170, 173, 174, 180, 183, 184, 193, 200, 340, 341, 409, 412, 415, 47, 440, 443, 445, 450, 452, 453, 460, 470, 473, 480, 483, 490, 493, 166, 171, 172, 175, 182, 410, 411, 422, 432, 437 ) ( LF) y (lf) DEPOSITREP. F_CHKG_TRAN_HIST_EOM. DPST2_ACCOUNT IN (581xxx,1133xx,74099xxx,3452xxxx,1310xxx,6206xxx,68302xxx,5290xxxx)(LF) AND-(lf) DEPOSITREP. F_CHKG_TRAN_HIST_EOM. DPST2_TREXTC NO IN ( 4876, 5686 )-(lf) AND-(lf) REFERENCE_BU. STND_CORP_HRCHY_CRNT_CDM. SPU_NM IN ( 'Commercial Bank' )#(lf) )#(lf)GROUP BY#(lf) 1, #(lf) 2, #(lf) 3, #(lf) 4, #(lf) 5, #(lf) 6, #(lf) 7, #(lf) 8, #(lf) 9, #(lf) 10, #(lf) 11, #(lf) 12, #(lf) 13, #(lf) 14, #(lf) 15, #(lf) 16, #(lf) 17, #(lf) 19, #(lf) 20, #(lf) 21, #(lf) 22, #(lf) 23, #(lf) 24, #(lf) 25, #(lf) 26, #(lf) 27, #(lf) 28, #(lf) 29, #(lf) 30, #(lf) 31, #(lf) 32, #(lf) 33, #(lf) 34, #(lf) 35, #(lf) 36, #(lf) 37, #(lf) 38, #(lf) 39, #(lf) 40, #(lf) 41#(lf)"), #"Changed Type1" = Table.TransformColumnTypes(Source,{{"ACCT_NBR", Int64.Type}}), #"Merged Queries1" = Table.NestedJoin(#"Changed Type1", {"ACCT_NBR"}, #"Prefer Pay Clients", {"Account Number"}, "Prefer Pay Clients", JoinKind.LeftOuter), #"Expanded Prefer Pay Clients" = Table.ExpandTableColumn(#"Merged Queries1", "Prefer Pay Clients" , "Nombre del programa", "Preferir los clientes de pago.nombre del programa"-), "Eliminados otras columnas" - Table.SelectColumns(-"Expanded Prefer Pay Clients","ACCT_NBR", "Count(DPDDM_ACCOUNT)", "DPDDM_MANALYSIS", "DPST2_ACCOUNT", "DPST2_TDDESC_1", "DPST2_TDDESC_2", "DPST2_SEQUENCE", "DPST2_TRAMT", "DPST2_TRSEQ", "DPST2_TREXTC", "DPST2_TRPROCDT", "DPST2_TREFFDT", "TRANS_TYPE_ID", "DPST2_TRITC", "DPST2_DATE", "DATA_DT", "Columnas reordenadas" - Tabla.ReordenarColumns(-"Eliminados Otras Columnas","ACCT_NBR", "DPDDM_MANALYSIS", "DPDDM_MANALYSIS", "DPST2_ACCOUNT DPDDM_MANALYSIS", "DPST2_TDDESC_1", "DPST2_TDDESC_2", "DPST2_SEQUENCE", "DPST2_TRAMT", "DPST2_TRSEQ", "DPST2_TREXTC", "DPST2_TRITC", "DPST2_TRPROCDT", "DPST2_TREFFDT", "TRANS_TYPE_ID", "DPST2_DATE", "DATA_DT", "Columnas combinadas" - Tabla.Combinas (Tabla."Columnas reordenadas", "DPST2_TRITC", escriba text, "DPST2_TREXTC", escriba text, "en-US"), "DPST2_TRITC", "DPST2_TREXTC",Combiner.CombineTextByDelimiter("", QuoteStyle.None),"Merged"), "Columnas eliminadas" - Table.Column Removes(-"Columnas combinadas","DPST2_ACCOUNT"),"Columnas renombradas" - Table.RenameColumns("Columnas eliminadas","ACCT_NBR", "Número de cuenta", "DPST2_TDDESC_1", "Descripción 1", "DPST2_TDDESC_2", "Descripción 2", "DPST2_TRAMT", "Importe de la transacción", "Consultas combinadas" - Tabla.NestedJoin('"Columnas renombradas", '"Combinado"', Asignación, ''Combinado"', "Mapping", JoinKind.LeftOuter), "Asignación expandida" - Table.ExpandTableColumn(-"Consultas combinadas", "Mapping", "Merged", "DR_CR_CODE_1", "SC Description","Merged"Merged .1", "DR_CR_CODE_1", "Descripción de SC"-), "Filas filtradas" - Table.SelectRows(-"Mapa Expandido", cada uno ([DR_CR_CODE_1] - "D")) en "Filtrado Filtrado Rows"