¿Cómo guardar los resultados de la consulta SQL en la tabla de datos?Hola todos,
Tengo el siguiente problema. Quiero ejecutar una consulta SQL para obtener datos de la base de datos y funciona bien. Después de eso, guardaría los datos de la consulta en la tabla de datos y los usaría para su posterior procesamiento. Basado en ideas de otras publicaciones, hice una asignación simple a la nueva variable dt_TestData . Proporciono como argumento para la tabla de datos el nombre tomado de Nombre de consulta. Sin embargo, ocurre un error cuando quiero guardar datos en la nueva variable. La ejecución de consulta funciona bien y la nueva tabla con nombre Datos experimentales se abre automáticamente, pero me gustaría hacer la referencia a esa tabla. Estoy pasando por alto algo y no soy capaz de notarlo. Agradecería ayuda para resolver este problema. Estoy usando JMP15. Una pregunta más, ¿cómo deshabilitar la visualización de la tabla después de la ejecución de la consulta? Atentamente.
Data = New SQL Query(
Connection(
"ODBC:Description=Datenbank;DRIVER=SQL Server;SERVER=Server;UID=%_UID_%;PWD=%_PWD_%;APP=JMP;DATABASE=EngineeringSupport;"
),
QueryName( "Experimental_Data" ),
Select(
Column( "Param1", "t1"),
Column( "Param2", "t1"),
Column( "Param3", "t1"),
),
From( Table( "TestData", Schema( "dbo" ), Alias( "t1" ))),
) << Run;
dt_TestData = Data Table("Experimental_Data");
Open(dt_TestData);
//further actions with dt_TestData: slicing, joining with other tables, etc.
Re: ¿Cómo guardar los resultados de una consulta SQL en la tabla de datos?Eso es raro. Cuando ejecuto una consulta, no puedo enviar mensajes directamente a la tabla desde la consulta. Primero necesito convertir esa tabla en una tabla de datos. Vea el ejemplo a continuación. ¿Estoy malinterpretando algo?
Table = New SQL Query(
Version( 130 ),
Connection( "ODBC:DSN=yournamehere;" ), // OBS! needs to be present and carry correct name!
QueryName( "MyQuery" ),
Select(
Distinct,
Column( "A", "t1" ),
),
From(
Table(
"some table",
Schema( "some view" ),
Alias( "t1" )
),
Table(
"another table",
Schema( "another view" ),
Alias( "t2" ),
Join(
Type( Left Outer ),
EQ( Column( "BatchId", "t1" ), Column( "BatchId", "t2" ) )
)
)
)
) << Run;
// does not work
Close( Table, no save );
// does work
NewTable = Data Table( Table );
Close( NewTable, no save );
Re: ¿Cómo guardar los resultados de una consulta SQL en la tabla de datos?markbailey, gracias por responder. No sabía cómo obtener la referencia mediante secuencias de comandos, pero después de una búsqueda adicional, encontré la solución en este correo . Gracias a todos por su tiempo y un saludo.
Re: ¿Cómo guardar los resultados de una consulta SQL en la tabla de datos?La variable Datos almacena la referencia a la tabla de datos devuelta por la consulta. La llamada de función Tabla de datos ("Datos experimentales") devuelve una referencia a la tabla de datos abiertos Datos experimentales. Puede enviar mensajes a la referencia almacenada en Datos .
Re: ¿Cómo guardar los resultados de una consulta SQL en la tabla de datos?gzmorgan0,
¡Gracias por tu respuesta! Debería haber explicado que con mayor precisión, el problema es que no pude crear la variable "dt" que haría referencia a los datos resultantes de la consulta. Después de ejecutar la consulta, se crea y se abre la nueva tabla, pero ¿dónde puedo encontrar (o crear) la variable que hace referencia a los datos? ¿O se crea de alguna manera y no puedo verlo/usarlo? JMP muestra un error con respecto a esta línea:
dt_TestData = Tabla de datos ("Experimental_Data");
"No se puede encontrar la tabla de datos al acceder o evaluar Tabla de datos, Tabla de datos/*###*/("Experimental_Data")"
creo que la variable dt_TestData no se puede crear de esa manera? Agradecería más ayuda para solucionar el problema.
Re: ¿Cómo guardar los resultados de una consulta SQL en la tabla de datos?@lukasz ,
La última instrucción JSL es el problema: Open( dt_testData ).Si la consulta se ejecutó correctamente, la tabla de datos ya está abierta. Si desea hacer otra copia de esa tabla, use Subconjunto. En el siguiente ejemplo, dt2 es una tabla diferente.
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
dt2 = dt << Subset( All Rows, Selected Columns(0), Output Table Name("Big2") );