안녕하세요!
두 개의 별도 쿼리(두 개의 서로 다른 소스에서 데이터를 제공)를 실행하는 스크립트를 통해 생성된 데이터 테이블이 있는데, 이 쿼리는 병합되어 데이터 테이블을 형성합니다. 내 질문은 스크립트를 처음부터 다시 실행할 필요가 없고 정리/조정/새 열을 유지할 수 있는 방식으로 이 테이블을 매일 업데이트하는 것과 관련이 있습니다. 사이드 바에 "데이터베이스에서 업데이트"와 "데이터베이스 2에서 업데이트"가 모두 표시되어 있습니다. 그 중 하나를 실행할 수 있지만 해당 소스에 포함되지 않은 열이 삭제됩니다. 즉, 첫 번째 쿼리에 대해 "데이터베이스에서 업데이트"를 실행하면 TVC, VI, AC 및 DC 열이 삭제됩니다. 원본 스크립트에 병합한 후 테이블에 추가하는 다른 계산/수동 입력 열과 함께 쿼리 2에서).
두 업데이트 스크립트를 하나의 스크립트(아래 참조)에 함께 복사하려고 시도했지만 첫 번째 스크립트를 실행할 때 두 번째 스크립트를 실행하기 전에 열을 삭제하려고 시도하는 문제가 있습니다. 가장 좋은 접근 방식이 테이블을 결합한 다음 업데이트를 시도하는 것인지 아니면 더 간단한 방법(해당 소스에서 제공되지 않은 데이터를 삭제하지 않고 업데이트하는 방법일 수 있음)이 있는지 잘 모르겠습니다. 아래 코드에서 연결 정보를 제거하고 이름을 변경했지만 이것이 아이디어를 제공하는 데 도움이 되기를 바랍니다. 이전에 비슷한 문제를 해결한 사람이 있나요? 감사해요!
New SQL Query(
Version( 130 ),
Connection(
""
),
QueryName( "query1" ),
Select(
Column( "Assay", "t1" ),
Column( "Experiment", "t1" ),
Column( "Date", "t1", Numeric Format( "m/d/y h:m:s", "0", "NO", "" ) ),
Column( "G", "t1" ),
Column( "L", "t1" ),
Column( "N", "t1" ),
Column( "K", "t1" ),
Column( "C", "t1" ),
Column( "H", "t1" ),
Column( "O", "t1" ),
Column( "C", "t1" ),
),
From( Table( "Runs", Schema( "schema1" ), Alias( "t1" ) ) ),
Where(
Contains(
Column( "Experiment", "t1" ),
"E001",
UI(
Contains(
Base(
"Categorical",
Prompt(
"Experiment ID:",
Character,
PromptName( "t1.Experiment_1" )
)
)
)
)
) & Does Not Contain(
Column( "Assay, "t1" ),
"xxx",
UI(
Contains(
Base(
"Categorical",
Prompt(
"Add a filter for names (optional) or put xxx:",
Character,
PromptName( "t1.AssayId_1" )
)
)
)
)
) & GE(
Column(
"Date",
"t1",
Numeric Format( "m/d/y h:m:s", "0", "NO", "" )
),
0,
UI(
Comparison(
Base(
"Continuous",
Prompt(
"Date range:",
Character,
PromptName( "t1.RunDate_1" )
)
)
)
)
)
)
) << Run Foreground( UpdateTable( Current Data Table() ) );
New SQL Query(
Version( 130 ),
Connection(
""
),
QueryName( "query2" ),
Select(
Column( "Assay", "t2" ),
Column( "Experiment", "t2" ),
Column( "Date", "t2", Numeric Format( "m/d/y h:m:s", "0", "NO", "" ) ),
Column( "TVC", "t2" ),
Column( "VI", "t2" ),
Column( "AC", "t2" ),
Column( "AD", "t2" )
),
From( Table( "Runs", Schema( "schema2" ), Alias( "t2" ) ) ),
Where(
Contains(
Column( "Experiment", "t2" ),
"E001",
UI(
Contains(
Base(
"Categorical",
Prompt(
"Experiment ID:",
Character,
PromptName( "t2.Experiment_1" )
)
)
)
)
) & Does Not Contain(
Column( "Assay", "t2" ),
"xxx",
UI(
Contains(
Base(
"Categorical",
Prompt(
"Add a filter (optional) or put xxx:",
Character,
PromptName( "t2.AssayId_1" )
)
)
)
)
) & GE(
Column(
"Date",
"t2",
Numeric Format( "m/d/y h:m:s", "0", "NO", "" )
),
0,
UI(
Comparison(
Base(
"Continuous",
Prompt(
"Date range:",
Character,
PromptName( "t2.RunDate_1" )
)
)
)
)
)
)
) << Run Foreground( UpdateTable( Current Data Table() ) )