日付の選択についてサポートが必要です。Select Where :Login Date == 01/18/2019; を使用しているサブセットを作成しています。動作させることができません。また、サブセットを開いてクエリ ビルダーを実行してみました。すべてのフィールドを追加して、ログイン日でフィルタリングできます。ログイン日がフィルターに表示されます。いずれかの日付を選択して「更新」をクリックしても、レコードは表示されません。以下は私のコードであり、クエリビルダーのスクリーンショットを添付しました。助けていただければ幸いです。
よろしく、
ウェイン
</CODE></PRE><P> </P><P><SPAN class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Capture-6.PNG" style="width: 973px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="Capture-6.PNG" style="width: 973px;"><span class="lia-inline-image-display-wrapper" image-alt="Capture-6.PNG" style="width: 973px;"><img src="https://us.v-cdn.net/6038925/uploads/images/15261iF7CEA402ACB0B52C/Capture-6.PNG" role="button" title="Capture-6.PNG" alt="Capture-6.PNG" /></span></SPAN></SPAN></P></LINGO-BODY><LINGO-SUB id="lingo-sub-108358" slang="en-US" mode="NONE">Re: 日付の選択についてサポートが必要です。</LINGO-SUB><LINGO-BODY id="lingo-body-108358" slang="en-US" mode="NONE">ジム、<BR /><BR />ようやく分かりました。 私はあなたの解決策を採用し、拡張を削除し、元の選択場所に追加し直しました。 何らかの理由で拡張が機能しませんでした。<BR />この問題を解決するために時間を割いていただき、ありがとうございました。 非常に高く評価。 このフォーラムの専門家全員がいなかったら、私のような学習者はプロジェクトを完了することができなかったでしょう。<BR /><BR />よろしく、<BR /><BR />ウェイン</LINGO-BODY><LINGO-SUB id="lingo-sub-108356" slang="en-US" mode="NONE">Re: 日付の選択についてサポートが必要です。</LINGO-SUB><LINGO-BODY id="lingo-body-108356" slang="en-US" mode="NONE"><P>ジム、</P><P>デバッグ ツールで、ALstartDT が数値ではなく文字列であると記載されていることに気付きました。これがお役に立てば幸いです。</P><P> </P><P>よろしく、</P><P> </P><P>ウェイン</P></LINGO-BODY><LINGO-SUB id="lingo-sub-108355" slang="en-US" mode="NONE">Re: 日付の選択についてサポートが必要です。</LINGO-SUB><LINGO-BODY id="lingo-body-108355" slang="en-US" mode="NONE"><P>ジム、</P><P> </P><P>エラーはありませんが、日付テキストボックスから取得された ALstartDT 日付によってサブセット化されません。私のファイルには、ログイン日が 2019 年 1 月 2 日から 2019 年 1 月 24 日までの行が含まれています。私の ALstartDT は 01/18/2019 です。</P><P> </P><P>よろしく、</P><P> </P><P>ウェイン</P></LINGO-BODY><LINGO-SUB id="lingo-sub-108347" slang="en-US" mode="NONE">Re: 日付の選択についてサポートが必要です。</LINGO-SUB><LINGO-BODY id="lingo-body-108347" slang="en-US" mode="NONE"><P>問題は、:login Date が文字列としてあり、日付データとともに時刻データが含まれていることです。したがって、ALstartDT と比較すると、問題があります。:Login Date を「m/d/y」形式の数値に変更しようとした行のコメントを解除することをお勧めします。次のように少し変更されるはずです</P>
<PRE><CODE class=" language-jsl">dt6:Login Date << data type(numeric) << modeling type(continuous)<< format( "m/d/y");
次に、select where 行を次のように変更します。
dt6 << Select where ((Contains(MyList, :Site ID)) & :Analysis == "G4");
dt6 << Select where (:Login Date >= informat(ALstartDT,"mm/dd/yyyy"),current selection("extend"));Re: 日付の選択についてサポートが必要です。ジム、
サンプルの JMP テーブル :Login Date は文字形式です。AlstartDT は数値だと思いますが、それが問題の原因でしょうか?これが問題だと思いますか?もしそうなら、何をお勧めしますか?
よろしく、
ウェイン
Re: 日付の選択についてサポートが必要です。ジム、
それが私がインポートしているExcelです。インポート後、次のテーブルが得られます。添付資料参照。
ウェイン
Re: 日付の選択についてサポートが必要です。ジム、
同意します。サンプルテーブルを添付します。
よろしく、
ウェイン
Re: 日付の選択についてサポートが必要です。問題は、列が文字であるかどうかと比較変数が文字であるかどうかの不一致であると確信しています。サンプルデータテーブルを添付していただけますか?
Re: 日付の選択についてサポートが必要です。ジム、
'Format' 、Format/*###*/(:Login Date, "mm/dd/yyyy") のアクセスまたは評価で、引数は数値である必要があります{1}が依然として発生します。Re: 日付の選択についてサポートが必要です。おっと、私の間違いです。[Row()] が問題です。使用
dt << select where( Format( :Login Date, "mm/dd/yyyy" ) <= ALstartDT );
Re: 日付の選択についてサポートが必要です。ジム、
:Login Date を文字列に変換しようとすると、「Format」、Format/*###*/:Login Date [Row()] のアクセスまたは評価で引数は数値である必要があるというエラーが表示されます{1}。 "mm/dd/yyyy")
よろしく、
ウェイン
Re: 日付の選択についてサポートが必要です。変数「ALstartDT」を文字列に設定したため
ALstartDT = Uppercase( Format( TempstartDT, "mm/dd/yyyy" ) );
(Format() 関数は文字列値を返します)
次に、「:Login Date」も文字列に変換する必要があります。「:Login Date」は JMP 日付列であると想定しています。
dt6 << Select where( Format(:Login Date[row()], "mm/dd/yyyy") >= ALstartDT, current selection( "extend" ) );
Re: 日付の選択についてサポートが必要です。ジム、
14.1を使用しています。日付をフォーマットするために非常に多くの異なる方法を試しましたが、適切なフォーマットが見つかりませんでした。以下は私のコードの詳細です。日付ボックスから変数を渡しています。私のExcelインポートのログイン日は次のようになります
ALstartDT を正しく渡しているかどうか、および選択を機能させるために日付を適切にフォーマットする方法に関する推奨事項をご覧ください。
ありがとう、
ウェイン
ログをクリア();
名前のデフォルトはここ (1) です。
runScript = Expr(
TempstartDT = 開始 << get;
TempendDT = 終了 << get;
ALstartDT = Uppercase(Format(TempstartDT, "mm/dd/yyyy"));
ALendDT = Uppercase(Format(TempendDT, "mm/dd/yyyy"));
);
// ヴィンス・ファラー著
// numeditbox にカレンダーを表示します (デフォルトは now)
// 注、これは JMP 11 以降でのみ機能します
dateBox = 関数(
{timething = Today()},
{新しいボックス}、
新しいボックス = Eval(
代わりの(
名前のExpr(
数値編集ボックス(
timething, // Eval(Sub()) JMP の癖のため
10, // JMP にはデフォルトの幅がないため、これが必要です
<<関数を設定(
Function( {自分},
{}、
If( Is Missing( self << get ),
self << Set( Eval( DUMMY ) ) // 日付を timething 引数に設定します
)
)
)、
<< Set Format(Format( "m/d/yh:m:s", 23, 0 ) ); // ボックスの日時フォーマットを作成します (カレンダーを提供します)
)
)、
Expr( DUMMY )、時間のもの
)
);
新しいボックス;
);
nw =
新しいウィンドウ( "SQL データ テーブルの抽出",
LineUpBox(NCol(2),
TextBox("開始日時")、開始 = dateBox(Today()- InDays(12))、
TextBox("終了日時")、end = dateBox()、
ButtonBox("Cancel", ButtonPressed = "Cancel"), ButtonBox("Get Data", ButtonPressed = "Get Data") // ユーザーのボタン押下入力を変数に保存します
));
待ちます (15);
//日付プロンプトでどのボタンが押されたかに基づいてアクションを実行する If ステートメント
If ( ButtonPressed == "キャンセル", nw << ウィンドウを閉じる);
If ( ButtonPressed == "キャンセル", Stop());
if ( ButtonPressed == "データを取得", runScript);
If ( ButtonPressed == "データを取得", runScript2);
If ( ButtonPressed == "データを取得", nw << ウィンドウを閉じる);
Caption("クエリが実行中です");
待機(0);
名前のデフォルトはここ (1) です。
すべてのシートに使用( 1 )、
ワークシートを連結( 0 )、
連結列の作成( 0 )、
ワークシート設定(
1、
列ヘッダーあり( 1 )、
ヘッダーの行数( 1 )、
ヘッダーは Row( 1 ) から始まり、
データは行 ( 2 ) から始まります。
データは列 ( 1 ) から始まります。
データは行 ( 0 ) で終了します。
データは列 ( 0 ) で終了します。
レプリケートされたスパン行数( 1 )、
レプリケートされたスパンド ヘッダー( 0 )、
非表示の行を抑制( 1 )、
非表示の列を非表示( 1 )、
空の列を抑制( 1 )、
階層( 0 )として扱い、
複数のシリーズ スタック( 0 )、
セルの色のインポート( 0 )、
制限列検出( 0 )、
列区切り文字列( "-" )
);
);
//列("ログイン日") << データ型(数値) << format("m/d/y");
dt6 << Select where (:ログイン日 >= ALstartDT,current selected("extend"));
dt7 << select where(Is Missing (:Label ID)) << 行を削除;
selrows=dt7 << get rows where (:Formatted Entry == "ND");
dt7:フォーマットされたエントリ[selRows]="0";
dt7:フォーマットされたエントリ << データ型(数値);
Re: 日付の選択についてサポートが必要です。さらに拡張するには@Mark_Baileyここでの の応答は、使用中の日付定数を示す例です。
dt = open("$SAMPLE_DATA\TechStock.jmp");
dt << select where(Date <= 05Jan2001);
日付に関するその他のヒントについては、を参照してください。 JMP での日付、時刻、日時および期間の使用。
Re: 日付の選択についてサポートが必要です。文字列と数値の間で変換する必要がなく、リテラルの日付値 (定数) を直接使用できることに注意してください。 フォームはDDMmmYYYY:HH:MM:SS.S 。 (このフォームは必要なだけ使用し、右側は省略します。) したがって、たとえば、今日の午前 8 時の正しい数値を次のように直接入力できます。
29Jan2019:08:00
この機能が有効になっている場合、スクリプト エディターはこの値を色分けされた数値として認識します。
Re: 日付の選択についてサポートが必要です。これは、メモした Select Where と同じ構造の Select Where の例です。それは動作します。したがって、場合によっては JSL デバッガーを使用してコードをステップ実行し、問題がどこにあるのかを見つける必要があると思います。
names default to here(1);
dt= open("$SAMPLE_DATA/Aircraft Incidents.jmp");
MyList = {"Accident", "Incident" };
dt << Select where( (Contains( MyList, :Investigation Type) & :Location == "Eden, UT"));
dt << Select where( format(Column( "Event Date" )[Row()], "M/D/Y" ) == "01/05/2001", current selection("extend"));
コードを JMP 11 に戻してチェックアウトしました。「currentselection("extend")」は JMP 12 で追加されたため、JSL は JMP 11 では正しく動作しませんが、そのリリース以降は動作します。
Re: 日付の選択についてサポートが必要です。ジム、
あなたの提案を試してみましたが、それでもデータはフィルターされませんでした。以下は私が使用したものです。
よろしくお願いします。
ウェイン
Re: 日付の選択についてサポートが必要です。JMP の日付値は数値です。「ログイン日」の値を日付値と比較したい場合は、「ログイン日」の値を文字列に変換して「01/07/2018」に変換するか、それをそのまま保持する必要があります。数値を入力し、「01/07/2018」を日付時刻数値に変換します。以下のスクリプトは、前の方法を使用して選択を実行します。
Column( "Login Date" ) << data type( numeric ) << Format( "m/d/y" );
MyList = {"HCDS", "HCDS;LENNY", "HCDS; WACKER", "HCDS; GOLDEN SAMPLE", "HCDS; ALJ", "HCDS; LENNY C",
"HCDS; WACKER; GOLDEN SAMPLE", "HCDS; WACKER; PRE-MOVE"};
dt6 << Select where( (Contains( MyList, :Site ID )) & :Analysis == "G4" );
dt6 << Select where( format(Column( "Login Date" )[Row()], "M/D/Y" ) == "01/07/2018", current selection( "extend" ) );
dt7 = dt6 << Subset( Output Table( "Aloha Lenny Assay Subset" ), Selected Rows( 1 ), Selected Columns( 0 ) );
dt7 << select where( Is Missing( :Label ID ) ) << delete rows;
selrows = dt7 << get rows where( :Formatted Entry == "ND" );
dt7:Formatted Entry[selRows] = "0";
dt7:Formatted Entry << data type( Numeric );