Subconjuntos para un datatable<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Hola a todos,
Soy bastante novato en la codificación JMP y necesito su ayuda para resolver esto.
Básicamente, lo que estoy tratando de hacer es importar un archivo de Excel y guardarlo como una tabla de datos y lo estoy logrando con este comando.
Abrir base de datos ("DSN = Excel Files; DBQ =" xyz ".xlsm; DriverId = 1046; MaxBufferSize = 2048; PageTimeout = 5;", "SELECT * FROM` 'CPASU by queue $' `", "CPASU by queue $ ");
hasta ahora tan bueno.
y luego desde la CPASU por la tabla de datos de la cola que se ha creado: estoy intentando crear un subconjunto de esa tabla de datos mediante el siguiente comando
(Tabla de datos ("CPASU por cola $") << SELECCIONE DONDE Y (FWEEK> 201201, Precisión del pronóstico> 0)
<< subconjunto (
Vinculado,
Nombre de la tabla de salida ("Subconjunto de precisión de pronóstico $")));
Ahora, cuando ejecuto estos comandos, puedo crear perfectamente la tabla de datos CPASU por cola y también la tabla de subconjuntos Subconjunto de precisión de pronóstico. Sin embargo, las filas devueltas en la tabla de subconjuntos no se devuelven según la condición que he dado en la cláusula de selección. Está devolviendo todas las filas de la tabla de datos principal (CPASU por cola) ...
¿Alguien puede ayudarme a resolver esto?
Además, si hay un libro que puedo seguir para comprender JMP JSL ... Intenté seguir el guión que se creó automáticamente por la GUI de JMP, pero hasta ahora ha sido una pesadilla.
Gracias de antemano por toda la ayuda.
Re: Subconjuntos para un datatableSu declaración IF cerró los paréntesis demasiado pronto y faltaba una coma:
Si ( found_rows > 0,
dp << subconjunto ( nombre de la tabla de salida ( "Subconjunto de precisión de pronóstico $" )) ;
);
Re: Subconjuntos para un datatableOk, el problema ha vuelto a surgir ... No estoy realmente seguro de qué pasó con el código
dp = Tabla de datos ( "CPASU por cola $" ) << SELECCIONA DONDE ( Y ( FWEEK > 201201 , No enmascarado ! = 0 )) ;
found_rows = las filas ( dp << Obtener filas seleccionadas ) ;
Si ( found_rows > 0 )
dp << subconjunto ( nombre de la tabla de salida ( "Subconjunto de precisión de pronóstico $" )) ;
CPASU por cola es un datatable creado a partir de un archivo excel anteriormente en el código. Por favor ayuda.
Gracias,
Re: Subconjuntos para un datatableRecuerde marcar la respuesta resuelta después de buenos consejos y marque la respuesta correcta y también las respuestas útiles (= hace que el uso del foro sea más eficiente).
Re: Subconjuntos para un datatableSí, creo que el problema estaba en la colocación de paréntesis ... Funcionó ahora ... Gracias ...
Re: Subconjuntos para un datatableParece que ha perdido algunos paréntesis en la selección del segundo subconjunto. Debes poner el And () dentro de Select Where ().
Me gusta esto:
dp = Tabla de datos ( "CPASU por cola $" ) << SELECCIONA DONDE ( Y ( FWEEK > 201201 , Sin enmascaramiento ! = 0 ) ) ;
Re: Subconjuntos para un datatableIntenté hacer eso pero todavía no devuelve ningún resultado nuevo. A continuación se muestra el código completo.
// - Abrir el archivo y establecer una conexión en JMP.
Abrir base de datos ("DSN = Excel Files; DBQ = C: \ Users \\ Documents \\ JMP Analysis \ XXX.xlsm; DriverId = 1046; MaxBufferSize = 2048; PageTimeout = 5;", "SELECT * FROM` 'CPASU by queue $ '`", "CPASU por la cola $");
// Crear el 1er subconjunto
(Tabla de datos ("CPASU por cola $") << Seleccione Dónde (AND (FWEEK> = 201201, FWEEK! = 201248, FWEEK! = 201247, FWEEK! = 201243, CPASU real> 0)) << Subconjunto (vinculado) ;
Tabla de datos actuales (Tabla de datos ("Subconjunto de CPASU por cola $")));
// Crea el segundo subconjunto para la precisión del pronóstico
dp = (Tabla de datos ("CPASU por cola $") << SELECCIONE DONDE Y (FWEEK> 201201, Sin máscara! = 0));
found_rows = nrows (dp << Obtener filas seleccionadas);
si (found_rows> 0,
// entonces
dp << subconjunto (nombre de la tabla de salida ("Subconjunto de precisión de pronóstico $")),
// else
escribir ("No se seleccionaron filas")
);
El problema está en el segundo subconjunto. Aunque está creando el segundo subconjunto, está devolviendo el mismo conjunto de resultados que la consulta del primer subconjunto y estoy bastante seguro de que en la tabla de datos CPASU por cola hay varias filas que coinciden con la condición de SQL SELECT WHERE AND (FWEEK> 201201, Sin enmascaramiento! = 0));
Por favor ayuda .... gracias
Re: Subconjuntos para un datatableSolo debe hacer un subconjunto si se encontraron filas para su búsqueda. Si no se encontraron filas, el subconjunto será igual al de la tabla original. Necesitas algo como esto. He incluido algunas mejoras de código para la legibilidad.
dt = Abrir base de datos ( "DSN = Archivos de Excel; DBQ =" xyz ".xlsm; DriverId = 1046; MaxBufferSize = 2048; PageTimeout = 5;" ,
"SELECT * FROM` 'CPASU by laue $' `" , "CPASU por cola $" ) ;
// Seleccionar filas según su condición
dt << selecciona donde ( : FWEEK > 201201 Y : Precisión de pronóstico > 0 ) ;
// Ver si alguna fila fue seleccionada
found_rows = las filas ( dt << Obtener filas seleccionadas ) ;
Si ( found_rows > 0 ,
// entonces
dt << subconjunto ( nombre de la tabla de salida ( "Subconjunto de precisión de pronóstico $" )) ,
// else
impresión ( "No se seleccionaron filas" )
) ;
Hay varios excelentes libros de scripts JMP por ahí. Hay un manual de JMP Script PDF incluido con JMP, pero también está el libro Saltar a JMP (r) Scripting por Wendy Murphrey y Rosemary Lucas, ISBN 978-1-59994-658-0