날짜를 선택하는 데 도움이 필요합니다.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는 2019년 1월 18일입니다.</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");
그런 다음 선택 위치를 변경하십시오.
dt6 << Select where ((Contains(MyList, :Site ID)) & :Analysis == "G4");
dt6 << Select where (:Login Date >= informat(ALstartDT,"mm/dd/yyyy"),current selection("extend"));Re: 날짜 선택에 도움이 필요합니다.짐,
샘플 JMP 테이블: 로그인 날짜는 문자 형식입니다.AlstartDT가 숫자라고 생각하는데 이것이 문제가 발생한 이유입니까?이것이 문제라고 생각하시나요?그렇다면 무엇을 추천하시나요?
문안 인사,
웨인
Re: 날짜 선택에 도움이 필요합니다.짐,
그것이 내가 가져오는 엑셀입니다.가져온 후 다음 표를 얻습니다.참조 부착.
웨인
Re: 날짜 선택에 도움이 필요합니다.짐,
나는 동의한다.샘플 테이블이 첨부되어 있습니다.
문안 인사,
웨인
Re: 날짜 선택에 도움이 필요합니다.문제는 열이 문자인지 여부와 비교 변수가 문자인지 여부의 불일치라고 확신합니다.샘플 데이터 테이블을 첨부할 수 있나요?
Re: 날짜 선택에 도움이 필요합니다.짐,
여전히 인수는 'Format' , Format/*###*/(:Login Date, "mm/dd/yyyy") 액세스 또는 평가에서 숫자여야 합니다.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 = 시작 << 가져오기;
TempendDT = 종료 << get;
ALstartDT = 대문자(Format(TempstartDT, "mm/dd/yyyy"));
ALendDT = 대문자(Format(TempendDT, "mm/dd/yyyy"));
);
// 빈스 폴러가 작성함
// numeditbox에 달력을 표시합니다(기본값은 현재)
// 참고로 이는 JMP 11 이상에서만 작동합니다.
dateBox = 함수(
{timething = 오늘()},
{새 상자},
새 상자 = 평가(
대리자(
이름 Expr(
숫자 편집 상자(
timething, // JMP 특성 때문에 Eval(Sub())
10, // JMP에서는 너비를 기본값으로 지정하지 않기 때문에 이것이 필요합니다.
<<기능 설정(
함수({self},
{},
If( 누락됨( self << get ),
self << Set( Eval( DUMMY ) ) // 날짜를 timething 인수로 설정합니다.
)
)
),
<< Set Format(Format( "m/d/yh:m:s", 23, 0 ) ); // 상자의 날짜/시간 형식을 만듭니다(달력 제공).
)
),
Expr( DUMMY ), 시간 계산
)
);
새박스;
);
뉴 =
새 창("SQL 데이터 테이블 추출",
LineUpBox(NCol(2),
TextBox("Start DateTime"), start = dateBox(Today()- InDays(12)),
TextBox("날짜/시간 종료"), end = dateBox(),
ButtonBox("Cancel", ButtonPressed = "Cancel"), ButtonBox("Get Data", ButtonPressed = "Get Data") //사용자의 버튼 누르기 입력을 변수에 저장합니다.
)));
잠깐만요 (15);
//날짜 프롬프트에서 어떤 버튼을 눌렀는지에 따라 조치를 취하는 If 문
If ( ButtonPressed == "Cancel", nw << 창 닫기);
If ( ButtonPressed == "취소", Stop());
if ( ButtonPressed == "데이터 가져오기", runScript);
If ( ButtonPressed == "데이터 가져오기", runScript2);
If ( ButtonPressed == "데이터 가져오기", nw << 창 닫기);
Caption("쿼리가 실행 중입니다.");
기다려(0);
이름의 기본값은 여기(1)입니다.
모든 시트에 사용( 1 ),
워크시트 연결( 0 ),
연결 열 생성( 0 ),
워크시트 설정(
1,
열 머리글 있음( 1 ),
헤더의 행 수( 1 ),
헤더는 행( 1 )에서 시작됩니다.
데이터는 행( 2 )에서 시작됩니다.
데이터는 열( 1 )에서 시작됩니다.
데이터는 행( 0 )에서 끝납니다.
데이터는 열( 0 )에서 끝납니다.
복제된 스팬 행( 1 ),
복제된 스팬 헤더( 0 ),
숨겨진 행 억제( 1 ),
숨겨진 열 억제( 1 ),
빈 열 억제( 1 ),
계층 구조( 0 )로 처리,
다중 시리즈 스택( 0 ),
셀 색상 가져오기( 0 ),
열 감지 제한( 0 ),
열 구분자 문자열( "-" )
);
);
//열("로그인 날짜") << 데이터 유형(숫자) << format("m/d/y");
dt6 << Select where (:로그인 날짜 >= ALstartDT,현재 선택("extend"));
dt7 << select where(Is Missing (:Label ID)) << 행 삭제;
selrows=dt7 << 행 가져오기 where (:Formatted Entry == "ND");
dt7:형식화된 항목[selRows]="0";
dt7:형식화된 항목 << 데이터 유형(숫자);
Re: 날짜 선택에 도움이 필요합니다.확장하려면 @마크_베일리 여기의 응답은 사용 중인 날짜 상수를 보여주는 예입니다.
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의 코드를 다시 확인했습니다."현재 선택("확장")"이 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 );