在兩個表中的日期之間搜索,將刺客值從一個添加到外部嗨!
我需要幫助:)從一個表分配一個值到一個表。
我的觸發器是日期,
如果dtP中的日期在距離dtC的一小時內等於或大於那麼需要將dtC:chart_value中的值分配給dtC中的新列(PC_TA)
任何幫助將不勝感激
表格列

我的代碼 - 不分配任何值只有零並且不處理最後一行:(
dtC = open ("....");
dtP = open ("....");
hr = 3600;
dtC << new column ( "PC_TA", numaric,continuous,format( "Best",8),);
for (i=1, i for (j=1, j if ( dtC:start_date[i] >= dtP:action_date[j] >= dtC:start_date[i] + hr,
dtC:PC_TA[i] = dtP:chart_value[j],
dtC:PC_TA[i] =0
);
);
);
Re:在兩個表中的日期之間搜索,將刺客值從一個添加到外部謝謝,Uday。
因此,如果我想使用hour(),我可能需要添加day()和month(),因為我的數據是30天后我只想在1小時內分配值,抱歉模糊描述但是從IP原因來看,我無法分享太多關於數據表的信息。
但我可以給出一個理想的例子來說明我想要實現的目標:
假設dtC中的ID列是銷售人員(可以在多行中重複),而開始日期列是他們在商場中訪問的日期。
至於dtP,chart_value列是商場隨機時間(action_date)的銷售平均值。
我希望看到哪個推銷員通過總和最大限度地提高了商場的密封性,並在訪問購物中心後的一小時內為銷售人員分配商場的平均銷售額。希望有所幫助。
我相信if()是好的它給我1或0我在尋找它時,由於某種原因(可能是日期格式)當我在表格上運行它時只有0(我看到日期是符合條件)。
Re:在兩個表中的日期之間搜索,將刺客值從一個添加到外部我相信第一個也需要翻轉:)和if()是好的。
Re:在兩個表中的日期之間搜索,將刺客值從一個添加到外部 @AdamChoen ,
並不是的。hour()函數獲取時間戳的小時 - 因此將返回(1-24)之間的值。
下面的高位線是錯誤的。我不明白你的描述你想要做什麼,但如果你要檢查2個邏輯條件,就需要有一個加入這些條件的邏輯運算符。

Re:在兩個表中的日期之間搜索,將刺客值從一個添加到外部謝謝大家
我已經糾正了劇本
if()正在尋找dtP中的日期,該日期距離dtC日期最多一個小時並且對指定的值求和。
hr = 3600;
dtC << new column ( "PC_TA", numaric,continuous,format( "Best",8),);
for (i=1, i <= Nrow(dtC), i++,
for (r=1, j <= Nrow(dtP), r++,
if ( dtC:start_date[i] <= dtP:action_date[r] <= dtC:start_date[i] + hr,
dtC:PC_TA[i] = dtC:PC_TA[i] + dtP:chart_value[r]
);
);
);仍然,我將PC_TA列全部清空
@ uday_guntupalli
如果我從兩個表中取出第一行並減去我想要得到~49小時~176400秒。
使用Hour()函數我得到22
dtP:action_date[1] - dtC:start_date[1];
/*:
-177221
hour(dtP:action_date[1]) - hour(dtC:start_date[1]);
/*:
22
Re:在兩個表中的日期之間搜索,將刺客值從一個添加到外部 @AdamChoen ,
幾點意見和建議:
1。不要使用“j”作為循環變量。JMP具有內置函數“J”,建議不要使用“j”作為變量。
2。您的if條件似乎有問題。
通常情況下,if條件應該與我下面的條件相同,但是在沒有邏輯運算符的情況下,if語句中有1個完整條件和1個不完整條件。
dtC = data table ("cycles");
dtP = data table ("74_edt_PC");
hr = 3600;
dtC << new column ( "PC_TA", numaric,continuous,format( "Best",8),);
For( i = 1, i < N Row( dtC ), i++,
For( r = 1, r < N Row( dtP ), r++,
If( dtC:start_date[i] >= dtP:action_date[r],
dtC:PC_TA[i] = dtP:chart_value[r],
dtC:PC_TA[i] = 0
)
)
);例如,如果您想比較2個時間戳的小時數,則應考慮:
dtC = data table ("cycles");
dtP = data table ("74_edt_PC");
hr = 3600;
dtC << new column ( "PC_TA", numaric,continuous,format( "Best",8),);
For( i = 1, i < N Row( dtC ), i++,
For( r = 1, r < N Row( dtP ), r++,
If( hour(dtC:start_date[i]) >= hour(dtP:action_date[r]),
dtC:PC_TA[i] = dtP:chart_value[r],
dtC:PC_TA[i] = 0
)
)
);
Re:在兩個表中的日期之間搜索,將刺客值從一個添加到外部我相信你的If()語句略有偏離。 您的第二次比較應小於或等於Start_Date加1小時
If( dtC:start_date[i] >= dtP:action_date[j] <= dtC:start_date[i] + hr,
dtC:PC_TA[i] = dtP:chart_value[j],
0
);