スクリプト-OBBCクエリからのデータテーブルの操作皆さんこんにちは -
Microsoft Accessデータベースに保存されている2つのデータセットを使用しています。これらのデータセットは、ODCBクエリを介して取得します。 さらにデータ操作を行う前に、結果の2つのデータテーブルを結合する必要があります。
プロセス全体のスクリプトを作成しましたが、一度に完全に実行されるわけではありません。 私は常に最初に2つのODCBクエリのスクリプトを実行し、次にテーブルの結合やその他の操作のためにスクリプトを実行する必要があります。
それ以外の場合は、エラーメッセージが表示されます: " 'data table'、Data Table / * ### * /( "qStreams")のアクセスまたは評価でデータテーブルが見つかりません「」
(「qStreams」は、ODCBクエリから取得した2つのテーブルの1つです)。
後で使用するために、ODCBクエリから取得したデータテーブルを格納/宣言するためのスクリプトを追加する必要があるかもしれませんが、JSLスクリプトに慣れていないため、ここで行き詰まります(これが私の最初のスクリプトです)実際のスクリプト)。
ご協力いただきありがとうございます。
スクリプティングRe:スクリプト-OBBCクエリからのデータテーブルを操作するこんにちは@JRS 、
次のように、各ODBC接続で開くデータテーブルへの参照を保持し、名前で呼び出す代わりにそれらを使用してみてください。
dt1 = Open Database( "DSN=My Data Source Name", "SELECT * FROM table1" );
dt2 = Open Database( "DSN=My Data Source Name", "SELECT * FROM table2" );
dt1 << Join(
With( dt2 ),
...
);
Re:スクリプト-OBBCクエリからのデータテーブルを操作する迅速な返信に感謝します。
コンセプトはわかりましたが、特定のケースに適用できません。 私のクエリスクリプトは現在次のようになっています。
New SQL Query(
Version( 130 ),
Connection(
"ODBC:DBQ=C:\Users\E822710\Desktop\ROTF\Database For JMP\Results.Mdb;DefaultDir=C:\Users\E822710\Desktop\ROTF\Database For JMP;Driver={Microsoft Access Driver (*.mdb, *.accdb)};DriverId=25;FIL=MS Access;FILEDSN=C:\Users\E822710\Desktop\ROTF\Database For JMP\Results.Mdb.dsn;MaxBufferSize=2048;MaxScanRows=8;PageTimeout=5;SafeTransactions=0;Threads=3;UID=admin;UserCommitSync=Yes;"
),
QueryName( "qProperties" ),
Select(
Column( "CaseID", "t1", Analysis Type( "Nominal" ) ),
Column( "StreamID", "t1", Analysis Type( "Nominal" ) ),
Column( "StreamTag", "t1" ),
Column( "StreamDescription", "t1" ),
Column( "QualityID", "t1", Analysis Type( "Nominal" ) ),
Column( "QualityTag", "t1" ),
Column( "QualityDescription", "t1" ),
Column( "Value", "t1", Alias( "StreamQualityValue" ) ),
Column( "OriginDescription", "t1", Alias( "StreamOriginDescription" ) )
),
From( Table( "RW_StreamQualities", Alias( "t1" ) ) ),
Where(
In List(
Column( "QualityTag", "t1" ),
{"CRB"},
UI( SelectListFilter( ListBox, Base( "Categorical" ) ) )
)
),
Order By(
Column( "CaseID", "t1", Order( "Ascending" ) ),
Column( "StreamReportOrder", "t1", Order( "Ascending" ) ),
Column( "QualityReportOrder", "t1", Order( "Ascending" ) )
)
) << Run;
スクリプトをすぐに共有する必要があったことに気付きました。
あなたのさらなるガイダンスに感謝します。
Re:スクリプト-OBBCクエリからのデータテーブルの操作New SQLQueryの値に等しい変数を設定します。スクリプトの最高レベルの関数を使用すると、次のようになります。
//Get data
dtqStreams = New SQL Query( ... ) << Run;
dtqProperties = New SQL Query( ... ) << Run;
// Join both Data Tables
dtJoined = dtqStreams << Join( With( dtqProperties ), ... );
// Set column properties
dtJoined:"StreamFeedFlag"n << Add Column Properties( ... );
// Add new columns
dtJoined << New Column( ... );
// Make graphs from your joined data table
dtJoined << Graph Builder( ... );
Re:スクリプト-OBBCクエリからのデータテーブルの操作こんにちは -
両方のテーブルの結合に関してまだ問題がありますが、投稿後に実装したスクリプトは次のとおりです。
// Join both Data Tables
dtJoined = dtqStreams << Join(
With( dtqProperties ),
Merge Same Name Columns,
Match Flag( 0 ),
By Matching Columns( :CaseID = :CaseID, :StreamID = :StreamID ),
Drop multiples( 0, 0 ),
Include Nonmatches( 0, 0 ),
Preserve main table order( 1 ),
Output Table( "UnitBalance.HY%" )
);
しかし、それでもエラーが発生します。
