如果條件你好
我有三個表,可以將它們稱為dt_A,dt_B和dt_C。 來自表dt_A和dt_B的數據被上載或串聯到dt_C中。
由於來自dt_A或dt_B的數據可以由不同的用戶添加到dt_ C中,並且可以在不同的時間生成。 因此,為了避免對C進行多次添加,我決定首先檢查是否已經存在。 我的想法很簡單:
date = dt_A:Name(“測量日期”)[i];
lot = dt_A:Lotname [i];
晶圓= dt_A:晶圓編號[i];
chip = dt_A:Position [i];
對於每一行(
if(:Name(“測量日期”)==日期&:Lotname ==批次&:WaferNumber ==晶片&:Position ==芯片,a = 1,a = 0);
);
//如果找到值,則a = 1
//如果未找到值,則a = 0
這就是我面臨的問題。 我已經在dt_A中生成了許多數據,其中一些已經在dt_C中提供了。 即使條件成立一個= 1 ,結果是a = 0 。
但是,當我運行時:
dt_C << select where(:Name(“測量日期”)==日期&:地名==批次&:WaferNumber ==晶片&:Position ==芯片);
dt_C中的行被選中。
任何想法出在哪裡?
數據表回复:如果條件關於在哪個數據表上執行操作,使用For Each Row()可能會使JMP感到困惑。 確保它在正確的數據表上運行。
一個或另一個數據表值中的字符變量中是否有任何前導或尾隨空格?
是否以相同方式保存和顯示日期值。 如果您使用m / d / y格式顯示日期時間值,並且數據中包含時間成分,則該日期時間值將與沒有該時間值的日期時間值相同回复:如果條件謝謝吉姆的建議:)
實際上,對於每個row()函數,我之前都有一個行當前數據表(dt_C)。 我還檢查了日期。 它可以正常工作。 實際導致錯誤的是表中的“ chip”:位置其格式為字符,建模類型為名義。 芯片只是一個字符。 這是一個錯誤。
我一直在調試它。:)回复:如果條件嘗試使用Trim()函數進行:位置和芯片比較回复:如果條件我已經解決了一些問題,並且由於select函數可以正常工作,因此我的解決方案很簡單:
dt_C << Select Where(
:Name( "measurement date" ) == date:Lotname == lot & :WaferNumber == wafer & :Position == chip
);
If( N Rows( dt_C << get selected rows ) > 0,
a = 1,
a = 0
);
在這種情況下,程序始終返回正確的“ a”值。 連接或更新數據的進一步概念可以正常工作:)